// $ANTLR 3.0.1 C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g 2008-06-09 20:43:59

package twi.sparql.grammer;

import java.util.ArrayList;
import java.util.HashMap;

import org.antlr.runtime.BitSet;
import org.antlr.runtime.EarlyExitException;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.NoViableAltException;
import org.antlr.runtime.Parser;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.TokenStream;

public class twi_sparqlParser extends Parser {
	public static final String[] tokenNames = new String[] { "<invalid>",
			"<EOR>", "<DOWN>", "<UP>", "BASE", "IRI_REF", "PREFIX", "PNAME_NS",
			"SELECT", "DISTINCT", "REDUCED", "ASTERISK", "CONSTRUCT",
			"DESCRIBE", "ASK", "FROM", "NAMED", "WHERE", "ORDER", "BY", "ASC",
			"DESC", "LIMIT", "INTEGER", "OFFSET", "OPEN_CURLY_BRACE", "DOT",
			"CLOSE_CURLY_BRACE", "OPTIONAL", "GRAPH", "UNION", "FILTER",
			"OPEN_BRACE", "CLOSE_BRACE", "COMMA", "SEMICOLON", "A",
			"OPEN_SQUARE_BRACE", "CLOSE_SQUARE_BRACE", "VAR1", "VAR2", "VAR3",
			"OR", "AND", "EQUAL", "NOT_EQUAL", "LESS", "GREATER", "LESS_EQUAL",
			"GREATER_EQUAL", "PLUS", "MINUS", "DIVIDE", "NOT", "STR", "LANG",
			"LANGMATCHES", "DATATYPE", "BOUND", "SAMETERM", "ISIRI", "ISURI",
			"ISBLANK", "ISLITERAL", "REGEX", "LANGTAG", "REFERENCE", "DECIMAL",
			"DOUBLE", "INTEGER_POSITIVE", "DECIMAL_POSITIVE",
			"DOUBLE_POSITIVE", "INTEGER_NEGATIVE", "DECIMAL_NEGATIVE",
			"DOUBLE_NEGATIVE", "TRUE", "FALSE", "STRING_LITERAL1",
			"STRING_LITERAL2", "STRING_LITERAL_LONG1", "STRING_LITERAL_LONG2",
			"PNAME_LN", "BLANK_NODE_LABEL", "EOL", "WS", "PN_PREFIX",
			"PN_LOCAL", "VARNAME", "PN_CHARS_BASE", "DIGIT", "EXPONENT",
			"ECHAR", "PN_CHARS_U", "PN_CHARS", "COMMENT", "ANY" };
	public static final int PREFIX = 6;
	public static final int EXPONENT = 90;
	public static final int CLOSE_SQUARE_BRACE = 38;
	public static final int GRAPH = 29;
	public static final int REGEX = 64;
	public static final int PNAME_LN = 81;
	public static final int CONSTRUCT = 12;
	public static final int NOT = 53;
	public static final int EOF = -1;
	public static final int VARNAME = 87;
	public static final int ISLITERAL = 63;
	public static final int GREATER = 47;
	public static final int EOL = 83;
	public static final int NOT_EQUAL = 45;
	public static final int LESS = 46;
	public static final int LANGMATCHES = 56;
	public static final int DOUBLE = 68;
	public static final int PN_CHARS_U = 92;
	public static final int BASE = 4;
	public static final int COMMENT = 94;
	public static final int OPEN_CURLY_BRACE = 25;
	public static final int SELECT = 8;
	public static final int CLOSE_CURLY_BRACE = 27;
	public static final int DOUBLE_POSITIVE = 71;
	public static final int DIVIDE = 52;
	public static final int BOUND = 58;
	public static final int ISIRI = 60;
	public static final int A = 36;
	public static final int ASC = 20;
	public static final int ASK = 14;
	public static final int BLANK_NODE_LABEL = 82;
	public static final int SEMICOLON = 35;
	public static final int ISBLANK = 62;
	public static final int WS = 84;
	public static final int NAMED = 16;
	public static final int INTEGER_POSITIVE = 69;
	public static final int OR = 42;
	public static final int STRING_LITERAL2 = 78;
	public static final int FILTER = 31;
	public static final int DESCRIBE = 13;
	public static final int STRING_LITERAL1 = 77;
	public static final int PN_CHARS = 93;
	public static final int DATATYPE = 57;
	public static final int LESS_EQUAL = 48;
	public static final int DOUBLE_NEGATIVE = 74;
	public static final int FROM = 15;
	public static final int FALSE = 76;
	public static final int DISTINCT = 9;
	public static final int LANG = 55;
	public static final int IRI_REF = 5;
	public static final int WHERE = 17;
	public static final int ORDER = 18;
	public static final int LIMIT = 22;
	public static final int AND = 43;
	public static final int ASTERISK = 11;
	public static final int ISURI = 61;
	public static final int STR = 54;
	public static final int SAMETERM = 59;
	public static final int COMMA = 34;
	public static final int OFFSET = 24;
	public static final int EQUAL = 44;
	public static final int DECIMAL_POSITIVE = 70;
	public static final int PLUS = 50;
	public static final int DIGIT = 89;
	public static final int DOT = 26;
	public static final int INTEGER = 23;
	public static final int BY = 19;
	public static final int REDUCED = 10;
	public static final int INTEGER_NEGATIVE = 72;
	public static final int PN_LOCAL = 86;
	public static final int PNAME_NS = 7;
	public static final int REFERENCE = 66;
	public static final int CLOSE_BRACE = 33;
	public static final int MINUS = 51;
	public static final int TRUE = 75;
	public static final int OPEN_SQUARE_BRACE = 37;
	public static final int UNION = 30;
	public static final int ECHAR = 91;
	public static final int OPTIONAL = 28;
	public static final int ANY = 95;
	public static final int STRING_LITERAL_LONG2 = 80;
	public static final int PN_CHARS_BASE = 88;
	public static final int DECIMAL = 67;
	public static final int VAR1 = 39;
	public static final int VAR2 = 40;
	public static final int STRING_LITERAL_LONG1 = 79;
	public static final int DECIMAL_NEGATIVE = 73;
	public static final int PN_PREFIX = 85;
	public static final int VAR3 = 41;
	public static final int DESC = 21;
	public static final int OPEN_BRACE = 32;
	public static final int GREATER_EQUAL = 49;
	public static final int LANGTAG = 65;

	public twi_sparqlParser(TokenStream input) {
		super(input);
	}

	public String[] getTokenNames() {
		return tokenNames;
	}

	public String getGrammarFileName() {
		return "C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g";
	}

	public ArrayList<SparqlList> list = new ArrayList<SparqlList>();
	private SparqlList currentList = null;
	public HashMap<String, String> varMap = new HashMap<String, String>();
	static int listCount = 0;

	public void startList() {
		if (currentList == null)
			currentList = new SparqlList(input.index());
	}

	public void endList() {
		if (this.currentList == null)
			return;
		int s = currentList.getStartIndex() - 1;
		int e = input.index();
		String t = "";
		for (int i = s; i <= e; i++)
			t += input.get(i).getText() + " ";
		currentList.setText(t);
		this.list.add(this.currentList);
		this.currentList = null;
	}

	public void addVariable(String name) {
		if (!varMap.containsKey(name))
			varMap.put(name, name);
		if (currentList != null)
			currentList.add(name);
	}

	// $ANTLR start query
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:97:1:
	// query : prologue ( selectQuery | constructQuery | describeQuery |
	// askQuery ) EOF ;
	public final void query() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:5: ( prologue (
			// selectQuery | constructQuery | describeQuery | askQuery ) EOF )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:7: prologue (
			// selectQuery | constructQuery | describeQuery | askQuery ) EOF
			{
				pushFollow(FOLLOW_prologue_in_query27);
				prologue();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:16: (
				// selectQuery | constructQuery | describeQuery | askQuery )
				int alt1 = 4;
				switch (input.LA(1)) {
				case SELECT: {
					alt1 = 1;
				}
					break;
				case CONSTRUCT: {
					alt1 = 2;
				}
					break;
				case DESCRIBE: {
					alt1 = 3;
				}
					break;
				case ASK: {
					alt1 = 4;
				}
					break;
				default:
					NoViableAltException nvae = new NoViableAltException(
							"98:16: ( selectQuery | constructQuery | describeQuery | askQuery )",
							1, 0, input);

					throw nvae;
				}

				switch (alt1) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:18:
					// selectQuery
				{
					pushFollow(FOLLOW_selectQuery_in_query31);
					selectQuery();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:32:
					// constructQuery
				{
					pushFollow(FOLLOW_constructQuery_in_query35);
					constructQuery();
					_fsp--;

				}
					break;
				case 3:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:49:
					// describeQuery
				{
					pushFollow(FOLLOW_describeQuery_in_query39);
					describeQuery();
					_fsp--;

				}
					break;
				case 4:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:98:65:
					// askQuery
				{
					pushFollow(FOLLOW_askQuery_in_query43);
					askQuery();
					_fsp--;

				}
					break;

				}

				match(input, EOF, FOLLOW_EOF_in_query47);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end query

	// $ANTLR start prologue
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:101:1:
	// prologue : ( baseDecl )? ( prefixDecl )* ;
	public final void prologue() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:5: ( ( baseDecl
			// )? ( prefixDecl )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:7: ( baseDecl )?
			// ( prefixDecl )*
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:7: (
				// baseDecl )?
				int alt2 = 2;
				int LA2_0 = input.LA(1);

				if ((LA2_0 == BASE)) {
					alt2 = 1;
				}
				switch (alt2) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:7:
					// baseDecl
				{
					pushFollow(FOLLOW_baseDecl_in_prologue64);
					baseDecl();
					_fsp--;

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:17: (
				// prefixDecl )*
				loop3: do {
					int alt3 = 2;
					int LA3_0 = input.LA(1);

					if ((LA3_0 == PREFIX)) {
						alt3 = 1;
					}

					switch (alt3) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:102:17:
						// prefixDecl
					{
						pushFollow(FOLLOW_prefixDecl_in_prologue67);
						prefixDecl();
						_fsp--;

					}
						break;

					default:
						break loop3;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end prologue

	// $ANTLR start baseDecl
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:105:1:
	// baseDecl : BASE IRI_REF ;
	public final void baseDecl() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:106:5: ( BASE
			// IRI_REF )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:106:7: BASE IRI_REF
			{
				match(input, BASE, FOLLOW_BASE_in_baseDecl85);
				match(input, IRI_REF, FOLLOW_IRI_REF_in_baseDecl87);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end baseDecl

	// $ANTLR start prefixDecl
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:109:1:
	// prefixDecl : PREFIX PNAME_NS IRI_REF ;
	public final void prefixDecl() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:110:5: ( PREFIX
			// PNAME_NS IRI_REF )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:110:7: PREFIX
			// PNAME_NS IRI_REF
			{
				match(input, PREFIX, FOLLOW_PREFIX_in_prefixDecl104);
				match(input, PNAME_NS, FOLLOW_PNAME_NS_in_prefixDecl106);
				match(input, IRI_REF, FOLLOW_IRI_REF_in_prefixDecl108);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end prefixDecl

	// $ANTLR start selectQuery
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:113:1:
	// selectQuery : SELECT ( DISTINCT | REDUCED )? ( ( var )+ | ASTERISK ) (
	// datasetClause )* whereClause solutionModifier ;
	public final void selectQuery() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:5: ( SELECT (
			// DISTINCT | REDUCED )? ( ( var )+ | ASTERISK ) ( datasetClause )*
			// whereClause solutionModifier )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:7: SELECT (
			// DISTINCT | REDUCED )? ( ( var )+ | ASTERISK ) ( datasetClause )*
			// whereClause solutionModifier
			{
				match(input, SELECT, FOLLOW_SELECT_in_selectQuery125);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:14: (
				// DISTINCT | REDUCED )?
				int alt4 = 2;
				int LA4_0 = input.LA(1);

				if (((LA4_0 >= DISTINCT && LA4_0 <= REDUCED))) {
					alt4 = 1;
				}
				switch (alt4) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
				{
					if ((input.LA(1) >= DISTINCT && input.LA(1) <= REDUCED)) {
						input.consume();
						errorRecovery = false;
					} else {
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						recoverFromMismatchedSet(input, mse,
								FOLLOW_set_in_selectQuery127);
						throw mse;
					}

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:38: ( ( var
				// )+ | ASTERISK )
				int alt6 = 2;
				int LA6_0 = input.LA(1);

				if (((LA6_0 >= VAR1 && LA6_0 <= VAR3))) {
					alt6 = 1;
				} else if ((LA6_0 == ASTERISK)) {
					alt6 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"114:38: ( ( var )+ | ASTERISK )", 6, 0, input);

					throw nvae;
				}
				switch (alt6) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:40: (
					// var )+
				{
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:40: (
					// var )+
					int cnt5 = 0;
					loop5: do {
						int alt5 = 2;
						int LA5_0 = input.LA(1);

						if (((LA5_0 >= VAR1 && LA5_0 <= VAR3))) {
							alt5 = 1;
						}

						switch (alt5) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:40:
							// var
						{
							pushFollow(FOLLOW_var_in_selectQuery140);
							var();
							_fsp--;

						}
							break;

						default:
							if (cnt5 >= 1)
								break loop5;
							EarlyExitException eee = new EarlyExitException(5,
									input);
							throw eee;
						}
						cnt5++;
					} while (true);

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:47:
					// ASTERISK
				{
					match(input, ASTERISK, FOLLOW_ASTERISK_in_selectQuery145);

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:58: (
				// datasetClause )*
				loop7: do {
					int alt7 = 2;
					int LA7_0 = input.LA(1);

					if ((LA7_0 == FROM)) {
						alt7 = 1;
					}

					switch (alt7) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:114:58:
						// datasetClause
					{
						pushFollow(FOLLOW_datasetClause_in_selectQuery149);
						datasetClause();
						_fsp--;

					}
						break;

					default:
						break loop7;
					}
				} while (true);

				pushFollow(FOLLOW_whereClause_in_selectQuery152);
				whereClause();
				_fsp--;

				pushFollow(FOLLOW_solutionModifier_in_selectQuery154);
				solutionModifier();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end selectQuery

	// $ANTLR start constructQuery
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:117:1:
	// constructQuery : CONSTRUCT constructTemplate ( datasetClause )*
	// whereClause solutionModifier ;
	public final void constructQuery() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:118:5: ( CONSTRUCT
			// constructTemplate ( datasetClause )* whereClause solutionModifier
			// )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:118:7: CONSTRUCT
			// constructTemplate ( datasetClause )* whereClause solutionModifier
			{
				match(input, CONSTRUCT, FOLLOW_CONSTRUCT_in_constructQuery171);
				pushFollow(FOLLOW_constructTemplate_in_constructQuery173);
				constructTemplate();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:118:35: (
				// datasetClause )*
				loop8: do {
					int alt8 = 2;
					int LA8_0 = input.LA(1);

					if ((LA8_0 == FROM)) {
						alt8 = 1;
					}

					switch (alt8) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:118:35:
						// datasetClause
					{
						pushFollow(FOLLOW_datasetClause_in_constructQuery175);
						datasetClause();
						_fsp--;

					}
						break;

					default:
						break loop8;
					}
				} while (true);

				pushFollow(FOLLOW_whereClause_in_constructQuery178);
				whereClause();
				_fsp--;

				pushFollow(FOLLOW_solutionModifier_in_constructQuery180);
				solutionModifier();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end constructQuery

	// $ANTLR start describeQuery
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:121:1:
	// describeQuery : DESCRIBE ( ( varOrIRIref )+ | ASTERISK ) ( datasetClause
	// )* ( whereClause )? solutionModifier ;
	public final void describeQuery() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:5: ( DESCRIBE (
			// ( varOrIRIref )+ | ASTERISK ) ( datasetClause )* ( whereClause )?
			// solutionModifier )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:7: DESCRIBE ( (
			// varOrIRIref )+ | ASTERISK ) ( datasetClause )* ( whereClause )?
			// solutionModifier
			{
				match(input, DESCRIBE, FOLLOW_DESCRIBE_in_describeQuery197);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:16: ( (
				// varOrIRIref )+ | ASTERISK )
				int alt10 = 2;
				int LA10_0 = input.LA(1);

				if ((LA10_0 == IRI_REF || LA10_0 == PNAME_NS
						|| (LA10_0 >= VAR1 && LA10_0 <= VAR3) || LA10_0 == PNAME_LN)) {
					alt10 = 1;
				} else if ((LA10_0 == ASTERISK)) {
					alt10 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"122:16: ( ( varOrIRIref )+ | ASTERISK )", 10, 0,
							input);

					throw nvae;
				}
				switch (alt10) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:18: (
					// varOrIRIref )+
				{
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:18: (
					// varOrIRIref )+
					int cnt9 = 0;
					loop9: do {
						int alt9 = 2;
						int LA9_0 = input.LA(1);

						if ((LA9_0 == IRI_REF || LA9_0 == PNAME_NS
								|| (LA9_0 >= VAR1 && LA9_0 <= VAR3) || LA9_0 == PNAME_LN)) {
							alt9 = 1;
						}

						switch (alt9) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:18:
							// varOrIRIref
						{
							pushFollow(FOLLOW_varOrIRIref_in_describeQuery201);
							varOrIRIref();
							_fsp--;

						}
							break;

						default:
							if (cnt9 >= 1)
								break loop9;
							EarlyExitException eee = new EarlyExitException(9,
									input);
							throw eee;
						}
						cnt9++;
					} while (true);

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:33:
					// ASTERISK
				{
					match(input, ASTERISK, FOLLOW_ASTERISK_in_describeQuery206);

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:44: (
				// datasetClause )*
				loop11: do {
					int alt11 = 2;
					int LA11_0 = input.LA(1);

					if ((LA11_0 == FROM)) {
						alt11 = 1;
					}

					switch (alt11) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:44:
						// datasetClause
					{
						pushFollow(FOLLOW_datasetClause_in_describeQuery210);
						datasetClause();
						_fsp--;

					}
						break;

					default:
						break loop11;
					}
				} while (true);

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:59: (
				// whereClause )?
				int alt12 = 2;
				int LA12_0 = input.LA(1);

				if ((LA12_0 == WHERE || LA12_0 == OPEN_CURLY_BRACE || LA12_0 == LESS)) {
					alt12 = 1;
				}
				switch (alt12) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:122:59:
					// whereClause
				{
					pushFollow(FOLLOW_whereClause_in_describeQuery213);
					whereClause();
					_fsp--;

				}
					break;

				}

				pushFollow(FOLLOW_solutionModifier_in_describeQuery216);
				solutionModifier();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end describeQuery

	// $ANTLR start askQuery
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:125:1:
	// askQuery : ASK ( datasetClause )* whereClause ;
	public final void askQuery() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:126:5: ( ASK (
			// datasetClause )* whereClause )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:126:7: ASK (
			// datasetClause )* whereClause
			{
				match(input, ASK, FOLLOW_ASK_in_askQuery233);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:126:11: (
				// datasetClause )*
				loop13: do {
					int alt13 = 2;
					int LA13_0 = input.LA(1);

					if ((LA13_0 == FROM)) {
						alt13 = 1;
					}

					switch (alt13) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:126:11:
						// datasetClause
					{
						pushFollow(FOLLOW_datasetClause_in_askQuery235);
						datasetClause();
						_fsp--;

					}
						break;

					default:
						break loop13;
					}
				} while (true);

				pushFollow(FOLLOW_whereClause_in_askQuery238);
				whereClause();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end askQuery

	// $ANTLR start datasetClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:129:1:
	// datasetClause : FROM ( defaultGraphClause | namedGraphClause ) ;
	public final void datasetClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:130:5: ( FROM (
			// defaultGraphClause | namedGraphClause ) )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:130:7: FROM (
			// defaultGraphClause | namedGraphClause )
			{
				match(input, FROM, FOLLOW_FROM_in_datasetClause255);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:130:12: (
				// defaultGraphClause | namedGraphClause )
				int alt14 = 2;
				int LA14_0 = input.LA(1);

				if ((LA14_0 == IRI_REF || LA14_0 == PNAME_NS || LA14_0 == PNAME_LN)) {
					alt14 = 1;
				} else if ((LA14_0 == NAMED)) {
					alt14 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"130:12: ( defaultGraphClause | namedGraphClause )",
							14, 0, input);

					throw nvae;
				}
				switch (alt14) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:130:14:
					// defaultGraphClause
				{
					pushFollow(FOLLOW_defaultGraphClause_in_datasetClause259);
					defaultGraphClause();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:130:35:
					// namedGraphClause
				{
					pushFollow(FOLLOW_namedGraphClause_in_datasetClause263);
					namedGraphClause();
					_fsp--;

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end datasetClause

	// $ANTLR start defaultGraphClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:133:1:
	// defaultGraphClause : sourceSelector ;
	public final void defaultGraphClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:134:5: (
			// sourceSelector )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:134:7:
			// sourceSelector
			{
				pushFollow(FOLLOW_sourceSelector_in_defaultGraphClause282);
				sourceSelector();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end defaultGraphClause

	// $ANTLR start namedGraphClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:137:1:
	// namedGraphClause : NAMED sourceSelector ;
	public final void namedGraphClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:138:5: ( NAMED
			// sourceSelector )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:138:7: NAMED
			// sourceSelector
			{
				match(input, NAMED, FOLLOW_NAMED_in_namedGraphClause299);
				pushFollow(FOLLOW_sourceSelector_in_namedGraphClause301);
				sourceSelector();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end namedGraphClause

	// $ANTLR start sourceSelector
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:141:1:
	// sourceSelector : iriRef ;
	public final void sourceSelector() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:142:5: ( iriRef )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:142:7: iriRef
			{
				pushFollow(FOLLOW_iriRef_in_sourceSelector318);
				iriRef();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end sourceSelector

	// $ANTLR start whereClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:145:1:
	// whereClause : ( WHERE )? ( groupGraphPattern | '<' groupGraphPattern '>'
	// ) ;
	public final void whereClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:5: ( ( WHERE )?
			// ( groupGraphPattern | '<' groupGraphPattern '>' ) )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:7: ( WHERE )? (
			// groupGraphPattern | '<' groupGraphPattern '>' )
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:7: ( WHERE
				// )?
				int alt15 = 2;
				int LA15_0 = input.LA(1);

				if ((LA15_0 == WHERE)) {
					alt15 = 1;
				}
				switch (alt15) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:7: WHERE
				{
					match(input, WHERE, FOLLOW_WHERE_in_whereClause335);

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:14: (
				// groupGraphPattern | '<' groupGraphPattern '>' )
				int alt16 = 2;
				int LA16_0 = input.LA(1);

				if ((LA16_0 == OPEN_CURLY_BRACE)) {
					alt16 = 1;
				} else if ((LA16_0 == LESS)) {
					alt16 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"146:14: ( groupGraphPattern | '<' groupGraphPattern '>' )",
							16, 0, input);

					throw nvae;
				}
				switch (alt16) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:15:
					// groupGraphPattern
				{
					pushFollow(FOLLOW_groupGraphPattern_in_whereClause339);
					groupGraphPattern();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:146:35: '<'
					// groupGraphPattern '>'
				{
					match(input, LESS, FOLLOW_LESS_in_whereClause343);
					pushFollow(FOLLOW_groupGraphPattern_in_whereClause345);
					groupGraphPattern();
					_fsp--;

					match(input, GREATER, FOLLOW_GREATER_in_whereClause347);

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end whereClause

	// $ANTLR start solutionModifier
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:149:1:
	// solutionModifier : ( orderClause )? ( limitOffsetClauses )? ;
	public final void solutionModifier() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:5: ( (
			// orderClause )? ( limitOffsetClauses )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:7: ( orderClause
			// )? ( limitOffsetClauses )?
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:7: (
				// orderClause )?
				int alt17 = 2;
				int LA17_0 = input.LA(1);

				if ((LA17_0 == ORDER)) {
					alt17 = 1;
				}
				switch (alt17) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:7:
					// orderClause
				{
					pushFollow(FOLLOW_orderClause_in_solutionModifier365);
					orderClause();
					_fsp--;

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:20: (
				// limitOffsetClauses )?
				int alt18 = 2;
				int LA18_0 = input.LA(1);

				if ((LA18_0 == LIMIT || LA18_0 == OFFSET)) {
					alt18 = 1;
				}
				switch (alt18) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:150:20:
					// limitOffsetClauses
				{
					pushFollow(FOLLOW_limitOffsetClauses_in_solutionModifier368);
					limitOffsetClauses();
					_fsp--;

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end solutionModifier

	// $ANTLR start limitOffsetClauses
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:153:1:
	// limitOffsetClauses : ( limitClause ( offsetClause )? | offsetClause (
	// limitClause )? ) ;
	public final void limitOffsetClauses() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:5: ( (
			// limitClause ( offsetClause )? | offsetClause ( limitClause )? ) )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:7: ( limitClause
			// ( offsetClause )? | offsetClause ( limitClause )? )
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:7: (
				// limitClause ( offsetClause )? | offsetClause ( limitClause )?
				// )
				int alt21 = 2;
				int LA21_0 = input.LA(1);

				if ((LA21_0 == LIMIT)) {
					alt21 = 1;
				} else if ((LA21_0 == OFFSET)) {
					alt21 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"154:7: ( limitClause ( offsetClause )? | offsetClause ( limitClause )? )",
							21, 0, input);

					throw nvae;
				}
				switch (alt21) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:9:
					// limitClause ( offsetClause )?
				{
					pushFollow(FOLLOW_limitClause_in_limitOffsetClauses388);
					limitClause();
					_fsp--;

					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:21: (
					// offsetClause )?
					int alt19 = 2;
					int LA19_0 = input.LA(1);

					if ((LA19_0 == OFFSET)) {
						alt19 = 1;
					}
					switch (alt19) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:21:
						// offsetClause
					{
						pushFollow(FOLLOW_offsetClause_in_limitOffsetClauses390);
						offsetClause();
						_fsp--;

					}
						break;

					}

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:37:
					// offsetClause ( limitClause )?
				{
					pushFollow(FOLLOW_offsetClause_in_limitOffsetClauses395);
					offsetClause();
					_fsp--;

					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:50: (
					// limitClause )?
					int alt20 = 2;
					int LA20_0 = input.LA(1);

					if ((LA20_0 == LIMIT)) {
						alt20 = 1;
					}
					switch (alt20) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:154:50:
						// limitClause
					{
						pushFollow(FOLLOW_limitClause_in_limitOffsetClauses397);
						limitClause();
						_fsp--;

					}
						break;

					}

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end limitOffsetClauses

	// $ANTLR start orderClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:157:1:
	// orderClause : ORDER BY ( orderCondition )+ ;
	public final void orderClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:158:5: ( ORDER BY (
			// orderCondition )+ )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:158:7: ORDER BY (
			// orderCondition )+
			{
				match(input, ORDER, FOLLOW_ORDER_in_orderClause417);
				match(input, BY, FOLLOW_BY_in_orderClause419);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:158:16: (
				// orderCondition )+
				int cnt22 = 0;
				loop22: do {
					int alt22 = 2;
					int LA22_0 = input.LA(1);

					if ((LA22_0 == IRI_REF || LA22_0 == PNAME_NS
							|| (LA22_0 >= ASC && LA22_0 <= DESC)
							|| LA22_0 == OPEN_BRACE
							|| (LA22_0 >= VAR1 && LA22_0 <= VAR3)
							|| (LA22_0 >= STR && LA22_0 <= REGEX) || LA22_0 == PNAME_LN)) {
						alt22 = 1;
					}

					switch (alt22) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:158:16:
						// orderCondition
					{
						pushFollow(FOLLOW_orderCondition_in_orderClause421);
						orderCondition();
						_fsp--;

					}
						break;

					default:
						if (cnt22 >= 1)
							break loop22;
						EarlyExitException eee = new EarlyExitException(22,
								input);
						throw eee;
					}
					cnt22++;
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end orderClause

	// $ANTLR start orderCondition
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:161:1:
	// orderCondition : ( ( ( ASC | DESC ) brackettedExpression ) | ( constraint
	// | var ) );
	public final void orderCondition() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:162:5: ( ( ( ASC |
			// DESC ) brackettedExpression ) | ( constraint | var ) )
			int alt24 = 2;
			int LA24_0 = input.LA(1);

			if (((LA24_0 >= ASC && LA24_0 <= DESC))) {
				alt24 = 1;
			} else if ((LA24_0 == IRI_REF || LA24_0 == PNAME_NS
					|| LA24_0 == OPEN_BRACE
					|| (LA24_0 >= VAR1 && LA24_0 <= VAR3)
					|| (LA24_0 >= STR && LA24_0 <= REGEX) || LA24_0 == PNAME_LN)) {
				alt24 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"161:1: orderCondition : ( ( ( ASC | DESC ) brackettedExpression ) | ( constraint | var ) );",
						24, 0, input);

				throw nvae;
			}
			switch (alt24) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:162:7: ( ( ASC |
				// DESC ) brackettedExpression )
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:162:7: ( ( ASC |
				// DESC ) brackettedExpression )
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:162:9: ( ASC |
				// DESC ) brackettedExpression
				{
					if ((input.LA(1) >= ASC && input.LA(1) <= DESC)) {
						input.consume();
						errorRecovery = false;
					} else {
						MismatchedSetException mse = new MismatchedSetException(
								null, input);
						recoverFromMismatchedSet(input, mse,
								FOLLOW_set_in_orderCondition441);
						throw mse;
					}

					pushFollow(FOLLOW_brackettedExpression_in_orderCondition451);
					brackettedExpression();
					_fsp--;

				}

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:163:7: (
				// constraint | var )
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:163:7: (
				// constraint | var )
				int alt23 = 2;
				int LA23_0 = input.LA(1);

				if ((LA23_0 == IRI_REF || LA23_0 == PNAME_NS
						|| LA23_0 == OPEN_BRACE
						|| (LA23_0 >= STR && LA23_0 <= REGEX) || LA23_0 == PNAME_LN)) {
					alt23 = 1;
				} else if (((LA23_0 >= VAR1 && LA23_0 <= VAR3))) {
					alt23 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"163:7: ( constraint | var )", 23, 0, input);

					throw nvae;
				}
				switch (alt23) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:163:9:
					// constraint
				{
					pushFollow(FOLLOW_constraint_in_orderCondition463);
					constraint();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:163:22: var
				{
					pushFollow(FOLLOW_var_in_orderCondition467);
					var();
					_fsp--;

				}
					break;

				}

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end orderCondition

	// $ANTLR start limitClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:166:1:
	// limitClause : LIMIT INTEGER ;
	public final void limitClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:167:5: ( LIMIT
			// INTEGER )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:167:7: LIMIT INTEGER
			{
				match(input, LIMIT, FOLLOW_LIMIT_in_limitClause486);
				match(input, INTEGER, FOLLOW_INTEGER_in_limitClause488);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end limitClause

	// $ANTLR start offsetClause
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:170:1:
	// offsetClause : OFFSET INTEGER ;
	public final void offsetClause() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:171:5: ( OFFSET
			// INTEGER )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:171:7: OFFSET
			// INTEGER
			{
				match(input, OFFSET, FOLLOW_OFFSET_in_offsetClause505);
				match(input, INTEGER, FOLLOW_INTEGER_in_offsetClause507);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end offsetClause

	// $ANTLR start groupGraphPattern
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:174:1:
	// groupGraphPattern : OPEN_CURLY_BRACE ( triplesBlock )? ( (
	// graphPatternNotTriples | filter ) ( DOT )? ( triplesBlock )? )*
	// CLOSE_CURLY_BRACE ;
	public final void groupGraphPattern() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:5: (
			// OPEN_CURLY_BRACE ( triplesBlock )? ( ( graphPatternNotTriples |
			// filter ) ( DOT )? ( triplesBlock )? )* CLOSE_CURLY_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:7:
			// OPEN_CURLY_BRACE ( triplesBlock )? ( ( graphPatternNotTriples |
			// filter ) ( DOT )? ( triplesBlock )? )* CLOSE_CURLY_BRACE
			{
				match(input, OPEN_CURLY_BRACE,
						FOLLOW_OPEN_CURLY_BRACE_in_groupGraphPattern524);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:24: (
				// triplesBlock )?
				int alt25 = 2;
				int LA25_0 = input.LA(1);

				if ((LA25_0 == IRI_REF || LA25_0 == PNAME_NS
						|| LA25_0 == INTEGER || LA25_0 == OPEN_BRACE
						|| LA25_0 == OPEN_SQUARE_BRACE
						|| (LA25_0 >= VAR1 && LA25_0 <= VAR3) || LA25_0 == LESS || (LA25_0 >= DECIMAL && LA25_0 <= BLANK_NODE_LABEL))) {
					alt25 = 1;
				}
				switch (alt25) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:24:
					// triplesBlock
				{
					pushFollow(FOLLOW_triplesBlock_in_groupGraphPattern526);
					triplesBlock();
					_fsp--;

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:38: ( (
				// graphPatternNotTriples | filter ) ( DOT )? ( triplesBlock )?
				// )*
				loop29: do {
					int alt29 = 2;
					int LA29_0 = input.LA(1);

					if ((LA29_0 == OPEN_CURLY_BRACE
							|| (LA29_0 >= OPTIONAL && LA29_0 <= GRAPH) || LA29_0 == FILTER)) {
						alt29 = 1;
					}

					switch (alt29) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:40:
						// ( graphPatternNotTriples | filter ) ( DOT )? (
						// triplesBlock )?
					{
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:40:
						// ( graphPatternNotTriples | filter )
						int alt26 = 2;
						int LA26_0 = input.LA(1);

						if ((LA26_0 == OPEN_CURLY_BRACE || (LA26_0 >= OPTIONAL && LA26_0 <= GRAPH))) {
							alt26 = 1;
						} else if ((LA26_0 == FILTER)) {
							alt26 = 2;
						} else {
							NoViableAltException nvae = new NoViableAltException(
									"175:40: ( graphPatternNotTriples | filter )",
									26, 0, input);

							throw nvae;
						}
						switch (alt26) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:42:
							// graphPatternNotTriples
						{
							pushFollow(FOLLOW_graphPatternNotTriples_in_groupGraphPattern533);
							graphPatternNotTriples();
							_fsp--;

						}
							break;
						case 2:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:67:
							// filter
						{
							pushFollow(FOLLOW_filter_in_groupGraphPattern537);
							filter();
							_fsp--;

						}
							break;

						}

						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:76:
						// ( DOT )?
						int alt27 = 2;
						int LA27_0 = input.LA(1);

						if ((LA27_0 == DOT)) {
							alt27 = 1;
						}
						switch (alt27) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:76:
							// DOT
						{
							match(input, DOT,
									FOLLOW_DOT_in_groupGraphPattern541);

						}
							break;

						}

						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:81:
						// ( triplesBlock )?
						int alt28 = 2;
						int LA28_0 = input.LA(1);

						if ((LA28_0 == IRI_REF || LA28_0 == PNAME_NS
								|| LA28_0 == INTEGER || LA28_0 == OPEN_BRACE
								|| LA28_0 == OPEN_SQUARE_BRACE
								|| (LA28_0 >= VAR1 && LA28_0 <= VAR3)
								|| LA28_0 == LESS || (LA28_0 >= DECIMAL && LA28_0 <= BLANK_NODE_LABEL))) {
							alt28 = 1;
						}
						switch (alt28) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:175:81:
							// triplesBlock
						{
							pushFollow(FOLLOW_triplesBlock_in_groupGraphPattern544);
							triplesBlock();
							_fsp--;

						}
							break;

						}

					}
						break;

					default:
						break loop29;
					}
				} while (true);

				match(input, CLOSE_CURLY_BRACE,
						FOLLOW_CLOSE_CURLY_BRACE_in_groupGraphPattern550);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end groupGraphPattern

	// $ANTLR start triplesBlock
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:179:1:
	// triplesBlock : ( triplesSameSubject | listBlock ) ( DOT ( triplesBlock )?
	// )? ;
	public final void triplesBlock() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:5: ( (
			// triplesSameSubject | listBlock ) ( DOT ( triplesBlock )? )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:8: (
			// triplesSameSubject | listBlock ) ( DOT ( triplesBlock )? )?
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:8: (
				// triplesSameSubject | listBlock )
				int alt30 = 2;
				int LA30_0 = input.LA(1);

				if ((LA30_0 == IRI_REF || LA30_0 == PNAME_NS
						|| LA30_0 == INTEGER || LA30_0 == OPEN_BRACE
						|| LA30_0 == OPEN_SQUARE_BRACE
						|| (LA30_0 >= VAR1 && LA30_0 <= VAR3) || (LA30_0 >= DECIMAL && LA30_0 <= BLANK_NODE_LABEL))) {
					alt30 = 1;
				} else if ((LA30_0 == LESS)) {
					alt30 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"180:8: ( triplesSameSubject | listBlock )", 30, 0,
							input);

					throw nvae;
				}
				switch (alt30) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:10:
					// triplesSameSubject
				{
					pushFollow(FOLLOW_triplesSameSubject_in_triplesBlock571);
					triplesSameSubject();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:31:
					// listBlock
				{
					pushFollow(FOLLOW_listBlock_in_triplesBlock575);
					listBlock();
					_fsp--;

				}
					break;

				}

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:43: ( DOT (
				// triplesBlock )? )?
				int alt32 = 2;
				int LA32_0 = input.LA(1);

				if ((LA32_0 == DOT)) {
					alt32 = 1;
				}
				switch (alt32) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:45: DOT
					// ( triplesBlock )?
				{
					match(input, DOT, FOLLOW_DOT_in_triplesBlock581);
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:49: (
					// triplesBlock )?
					int alt31 = 2;
					int LA31_0 = input.LA(1);

					if ((LA31_0 == IRI_REF || LA31_0 == PNAME_NS
							|| LA31_0 == INTEGER || LA31_0 == OPEN_BRACE
							|| LA31_0 == OPEN_SQUARE_BRACE
							|| (LA31_0 >= VAR1 && LA31_0 <= VAR3)
							|| LA31_0 == LESS || (LA31_0 >= DECIMAL && LA31_0 <= BLANK_NODE_LABEL))) {
						alt31 = 1;
					}
					switch (alt31) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:180:49:
						// triplesBlock
					{
						pushFollow(FOLLOW_triplesBlock_in_triplesBlock583);
						triplesBlock();
						_fsp--;

					}
						break;

					}

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end triplesBlock

	// $ANTLR start listBlock
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:182:1:
	// listBlock : '<' triplesBlock '>' ;
	public final void listBlock() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:182:11: ( '<'
			// triplesBlock '>' )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:183:2: '<'
			// triplesBlock '>'
			{
				match(input, LESS, FOLLOW_LESS_in_listBlock600);
				startList();
				pushFollow(FOLLOW_triplesBlock_in_listBlock603);
				triplesBlock();
				_fsp--;

				match(input, GREATER, FOLLOW_GREATER_in_listBlock605);
				endList();

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end listBlock

	// $ANTLR start graphPatternNotTriples
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:185:1:
	// graphPatternNotTriples : ( optionalGraphPattern |
	// groupOrUnionGraphPattern | graphGraphPattern );
	public final void graphPatternNotTriples() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:186:5: (
			// optionalGraphPattern | groupOrUnionGraphPattern |
			// graphGraphPattern )
			int alt33 = 3;
			switch (input.LA(1)) {
			case OPTIONAL: {
				alt33 = 1;
			}
				break;
			case OPEN_CURLY_BRACE: {
				alt33 = 2;
			}
				break;
			case GRAPH: {
				alt33 = 3;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"185:1: graphPatternNotTriples : ( optionalGraphPattern | groupOrUnionGraphPattern | graphGraphPattern );",
						33, 0, input);

				throw nvae;
			}

			switch (alt33) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:186:7:
				// optionalGraphPattern
			{
				pushFollow(FOLLOW_optionalGraphPattern_in_graphPatternNotTriples620);
				optionalGraphPattern();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:186:30:
				// groupOrUnionGraphPattern
			{
				pushFollow(FOLLOW_groupOrUnionGraphPattern_in_graphPatternNotTriples624);
				groupOrUnionGraphPattern();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:186:57:
				// graphGraphPattern
			{
				pushFollow(FOLLOW_graphGraphPattern_in_graphPatternNotTriples628);
				graphGraphPattern();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end graphPatternNotTriples

	// $ANTLR start optionalGraphPattern
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:189:1:
	// optionalGraphPattern : OPTIONAL groupGraphPattern ;
	public final void optionalGraphPattern() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:190:5: ( OPTIONAL
			// groupGraphPattern )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:190:7: OPTIONAL
			// groupGraphPattern
			{
				match(input, OPTIONAL,
						FOLLOW_OPTIONAL_in_optionalGraphPattern645);
				pushFollow(FOLLOW_groupGraphPattern_in_optionalGraphPattern647);
				groupGraphPattern();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end optionalGraphPattern

	// $ANTLR start graphGraphPattern
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:193:1:
	// graphGraphPattern : GRAPH varOrIRIref groupGraphPattern ;
	public final void graphGraphPattern() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:194:5: ( GRAPH
			// varOrIRIref groupGraphPattern )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:194:7: GRAPH
			// varOrIRIref groupGraphPattern
			{
				match(input, GRAPH, FOLLOW_GRAPH_in_graphGraphPattern664);
				pushFollow(FOLLOW_varOrIRIref_in_graphGraphPattern666);
				varOrIRIref();
				_fsp--;

				pushFollow(FOLLOW_groupGraphPattern_in_graphGraphPattern668);
				groupGraphPattern();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end graphGraphPattern

	// $ANTLR start groupOrUnionGraphPattern
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:197:1:
	// groupOrUnionGraphPattern : groupGraphPattern ( UNION groupGraphPattern )*
	// ;
	public final void groupOrUnionGraphPattern() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:198:5: (
			// groupGraphPattern ( UNION groupGraphPattern )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:198:7:
			// groupGraphPattern ( UNION groupGraphPattern )*
			{
				pushFollow(FOLLOW_groupGraphPattern_in_groupOrUnionGraphPattern685);
				groupGraphPattern();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:198:25: ( UNION
				// groupGraphPattern )*
				loop34: do {
					int alt34 = 2;
					int LA34_0 = input.LA(1);

					if ((LA34_0 == UNION)) {
						alt34 = 1;
					}

					switch (alt34) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:198:27:
						// UNION groupGraphPattern
					{
						match(input, UNION,
								FOLLOW_UNION_in_groupOrUnionGraphPattern689);
						pushFollow(FOLLOW_groupGraphPattern_in_groupOrUnionGraphPattern691);
						groupGraphPattern();
						_fsp--;

					}
						break;

					default:
						break loop34;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end groupOrUnionGraphPattern

	// $ANTLR start filter
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:201:1:
	// filter : FILTER constraint ;
	public final void filter() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:202:5: ( FILTER
			// constraint )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:202:7: FILTER
			// constraint
			{
				match(input, FILTER, FOLLOW_FILTER_in_filter711);
				pushFollow(FOLLOW_constraint_in_filter713);
				constraint();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end filter

	// $ANTLR start constraint
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:205:1:
	// constraint : ( brackettedExpression | builtInCall | functionCall );
	public final void constraint() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:206:5: (
			// brackettedExpression | builtInCall | functionCall )
			int alt35 = 3;
			switch (input.LA(1)) {
			case OPEN_BRACE: {
				alt35 = 1;
			}
				break;
			case STR:
			case LANG:
			case LANGMATCHES:
			case DATATYPE:
			case BOUND:
			case SAMETERM:
			case ISIRI:
			case ISURI:
			case ISBLANK:
			case ISLITERAL:
			case REGEX: {
				alt35 = 2;
			}
				break;
			case IRI_REF:
			case PNAME_NS:
			case PNAME_LN: {
				alt35 = 3;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"205:1: constraint : ( brackettedExpression | builtInCall | functionCall );",
						35, 0, input);

				throw nvae;
			}

			switch (alt35) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:206:7:
				// brackettedExpression
			{
				pushFollow(FOLLOW_brackettedExpression_in_constraint730);
				brackettedExpression();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:206:30:
				// builtInCall
			{
				pushFollow(FOLLOW_builtInCall_in_constraint734);
				builtInCall();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:206:44:
				// functionCall
			{
				pushFollow(FOLLOW_functionCall_in_constraint738);
				functionCall();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end constraint

	// $ANTLR start functionCall
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:209:1:
	// functionCall : iriRef argList ;
	public final void functionCall() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:210:5: ( iriRef
			// argList )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:210:7: iriRef
			// argList
			{
				pushFollow(FOLLOW_iriRef_in_functionCall755);
				iriRef();
				_fsp--;

				pushFollow(FOLLOW_argList_in_functionCall757);
				argList();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end functionCall

	// $ANTLR start argList
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:213:1:
	// argList : ( OPEN_BRACE CLOSE_BRACE | OPEN_BRACE expression ( COMMA
	// expression )* CLOSE_BRACE ) ;
	public final void argList() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:5: ( (
			// OPEN_BRACE CLOSE_BRACE | OPEN_BRACE expression ( COMMA expression
			// )* CLOSE_BRACE ) )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:7: ( OPEN_BRACE
			// CLOSE_BRACE | OPEN_BRACE expression ( COMMA expression )*
			// CLOSE_BRACE )
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:7: (
				// OPEN_BRACE CLOSE_BRACE | OPEN_BRACE expression ( COMMA
				// expression )* CLOSE_BRACE )
				int alt37 = 2;
				int LA37_0 = input.LA(1);

				if ((LA37_0 == OPEN_BRACE)) {
					int LA37_1 = input.LA(2);

					if ((LA37_1 == CLOSE_BRACE)) {
						alt37 = 1;
					} else if ((LA37_1 == IRI_REF || LA37_1 == PNAME_NS
							|| LA37_1 == INTEGER || LA37_1 == OPEN_BRACE
							|| (LA37_1 >= VAR1 && LA37_1 <= VAR3)
							|| (LA37_1 >= PLUS && LA37_1 <= MINUS)
							|| (LA37_1 >= NOT && LA37_1 <= REGEX) || (LA37_1 >= DECIMAL && LA37_1 <= PNAME_LN))) {
						alt37 = 2;
					} else {
						NoViableAltException nvae = new NoViableAltException(
								"214:7: ( OPEN_BRACE CLOSE_BRACE | OPEN_BRACE expression ( COMMA expression )* CLOSE_BRACE )",
								37, 1, input);

						throw nvae;
					}
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"214:7: ( OPEN_BRACE CLOSE_BRACE | OPEN_BRACE expression ( COMMA expression )* CLOSE_BRACE )",
							37, 0, input);

					throw nvae;
				}
				switch (alt37) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:9:
					// OPEN_BRACE CLOSE_BRACE
				{
					match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_argList776);
					match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_argList778);

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:34:
					// OPEN_BRACE expression ( COMMA expression )* CLOSE_BRACE
				{
					match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_argList782);
					pushFollow(FOLLOW_expression_in_argList784);
					expression();
					_fsp--;

					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:56: (
					// COMMA expression )*
					loop36: do {
						int alt36 = 2;
						int LA36_0 = input.LA(1);

						if ((LA36_0 == COMMA)) {
							alt36 = 1;
						}

						switch (alt36) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:214:58:
							// COMMA expression
						{
							match(input, COMMA, FOLLOW_COMMA_in_argList788);
							pushFollow(FOLLOW_expression_in_argList790);
							expression();
							_fsp--;

						}
							break;

						default:
							break loop36;
						}
					} while (true);

					match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_argList795);

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end argList

	// $ANTLR start constructTemplate
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:217:1:
	// constructTemplate : OPEN_CURLY_BRACE ( constructTriples )?
	// CLOSE_CURLY_BRACE ;
	public final void constructTemplate() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:218:5: (
			// OPEN_CURLY_BRACE ( constructTriples )? CLOSE_CURLY_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:218:7:
			// OPEN_CURLY_BRACE ( constructTriples )? CLOSE_CURLY_BRACE
			{
				match(input, OPEN_CURLY_BRACE,
						FOLLOW_OPEN_CURLY_BRACE_in_constructTemplate814);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:218:24: (
				// constructTriples )?
				int alt38 = 2;
				int LA38_0 = input.LA(1);

				if ((LA38_0 == IRI_REF || LA38_0 == PNAME_NS
						|| LA38_0 == INTEGER || LA38_0 == OPEN_BRACE
						|| LA38_0 == OPEN_SQUARE_BRACE
						|| (LA38_0 >= VAR1 && LA38_0 <= VAR3) || (LA38_0 >= DECIMAL && LA38_0 <= BLANK_NODE_LABEL))) {
					alt38 = 1;
				}
				switch (alt38) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:218:24:
					// constructTriples
				{
					pushFollow(FOLLOW_constructTriples_in_constructTemplate816);
					constructTriples();
					_fsp--;

				}
					break;

				}

				match(input, CLOSE_CURLY_BRACE,
						FOLLOW_CLOSE_CURLY_BRACE_in_constructTemplate819);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end constructTemplate

	// $ANTLR start constructTriples
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:221:1:
	// constructTriples : triplesSameSubject ( DOT ( constructTriples )? )? ;
	public final void constructTriples() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:5: (
			// triplesSameSubject ( DOT ( constructTriples )? )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:7:
			// triplesSameSubject ( DOT ( constructTriples )? )?
			{
				pushFollow(FOLLOW_triplesSameSubject_in_constructTriples836);
				triplesSameSubject();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:26: ( DOT (
				// constructTriples )? )?
				int alt40 = 2;
				int LA40_0 = input.LA(1);

				if ((LA40_0 == DOT)) {
					alt40 = 1;
				}
				switch (alt40) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:28: DOT
					// ( constructTriples )?
				{
					match(input, DOT, FOLLOW_DOT_in_constructTriples840);
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:32: (
					// constructTriples )?
					int alt39 = 2;
					int LA39_0 = input.LA(1);

					if ((LA39_0 == IRI_REF || LA39_0 == PNAME_NS
							|| LA39_0 == INTEGER || LA39_0 == OPEN_BRACE
							|| LA39_0 == OPEN_SQUARE_BRACE
							|| (LA39_0 >= VAR1 && LA39_0 <= VAR3) || (LA39_0 >= DECIMAL && LA39_0 <= BLANK_NODE_LABEL))) {
						alt39 = 1;
					}
					switch (alt39) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:222:32:
						// constructTriples
					{
						pushFollow(FOLLOW_constructTriples_in_constructTriples842);
						constructTriples();
						_fsp--;

					}
						break;

					}

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end constructTriples

	// $ANTLR start triplesSameSubject
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:225:1:
	// triplesSameSubject : ( varOrTerm propertyListNotEmpty | triplesNode
	// propertyList );
	public final void triplesSameSubject() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:226:5: ( varOrTerm
			// propertyListNotEmpty | triplesNode propertyList )
			int alt41 = 2;
			switch (input.LA(1)) {
			case IRI_REF:
			case PNAME_NS:
			case INTEGER:
			case VAR1:
			case VAR2:
			case VAR3:
			case DECIMAL:
			case DOUBLE:
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE:
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE:
			case TRUE:
			case FALSE:
			case STRING_LITERAL1:
			case STRING_LITERAL2:
			case STRING_LITERAL_LONG1:
			case STRING_LITERAL_LONG2:
			case PNAME_LN:
			case BLANK_NODE_LABEL: {
				alt41 = 1;
			}
				break;
			case OPEN_SQUARE_BRACE: {
				int LA41_2 = input.LA(2);

				if ((LA41_2 == CLOSE_SQUARE_BRACE)) {
					alt41 = 1;
				} else if ((LA41_2 == IRI_REF || LA41_2 == PNAME_NS
						|| LA41_2 == A || (LA41_2 >= VAR1 && LA41_2 <= VAR3) || LA41_2 == PNAME_LN)) {
					alt41 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"225:1: triplesSameSubject : ( varOrTerm propertyListNotEmpty | triplesNode propertyList );",
							41, 2, input);

					throw nvae;
				}
			}
				break;
			case OPEN_BRACE: {
				int LA41_3 = input.LA(2);

				if ((LA41_3 == CLOSE_BRACE)) {
					alt41 = 1;
				} else if ((LA41_3 == IRI_REF || LA41_3 == PNAME_NS
						|| LA41_3 == INTEGER || LA41_3 == OPEN_BRACE
						|| LA41_3 == OPEN_SQUARE_BRACE
						|| (LA41_3 >= VAR1 && LA41_3 <= VAR3) || (LA41_3 >= DECIMAL && LA41_3 <= BLANK_NODE_LABEL))) {
					alt41 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"225:1: triplesSameSubject : ( varOrTerm propertyListNotEmpty | triplesNode propertyList );",
							41, 3, input);

					throw nvae;
				}
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"225:1: triplesSameSubject : ( varOrTerm propertyListNotEmpty | triplesNode propertyList );",
						41, 0, input);

				throw nvae;
			}

			switch (alt41) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:226:7: varOrTerm
				// propertyListNotEmpty
			{
				pushFollow(FOLLOW_varOrTerm_in_triplesSameSubject863);
				varOrTerm();
				_fsp--;

				pushFollow(FOLLOW_propertyListNotEmpty_in_triplesSameSubject865);
				propertyListNotEmpty();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:226:40:
				// triplesNode propertyList
			{
				pushFollow(FOLLOW_triplesNode_in_triplesSameSubject869);
				triplesNode();
				_fsp--;

				pushFollow(FOLLOW_propertyList_in_triplesSameSubject871);
				propertyList();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end triplesSameSubject

	// $ANTLR start propertyListNotEmpty
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:229:1:
	// propertyListNotEmpty : verb objectList ( SEMICOLON ( verb objectList )?
	// )* ;
	public final void propertyListNotEmpty() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:5: ( verb
			// objectList ( SEMICOLON ( verb objectList )? )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:7: verb
			// objectList ( SEMICOLON ( verb objectList )? )*
			{
				pushFollow(FOLLOW_verb_in_propertyListNotEmpty888);
				verb();
				_fsp--;

				pushFollow(FOLLOW_objectList_in_propertyListNotEmpty890);
				objectList();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:23: (
				// SEMICOLON ( verb objectList )? )*
				loop43: do {
					int alt43 = 2;
					int LA43_0 = input.LA(1);

					if ((LA43_0 == SEMICOLON)) {
						alt43 = 1;
					}

					switch (alt43) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:25:
						// SEMICOLON ( verb objectList )?
					{
						match(input, SEMICOLON,
								FOLLOW_SEMICOLON_in_propertyListNotEmpty894);
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:35:
						// ( verb objectList )?
						int alt42 = 2;
						int LA42_0 = input.LA(1);

						if ((LA42_0 == IRI_REF || LA42_0 == PNAME_NS
								|| LA42_0 == A
								|| (LA42_0 >= VAR1 && LA42_0 <= VAR3) || LA42_0 == PNAME_LN)) {
							alt42 = 1;
						}
						switch (alt42) {
						case 1:
							// C:\\Dokumente und
							// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:230:37:
							// verb objectList
						{
							pushFollow(FOLLOW_verb_in_propertyListNotEmpty898);
							verb();
							_fsp--;

							pushFollow(FOLLOW_objectList_in_propertyListNotEmpty900);
							objectList();
							_fsp--;

						}
							break;

						}

					}
						break;

					default:
						break loop43;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end propertyListNotEmpty

	// $ANTLR start propertyList
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:233:1:
	// propertyList : ( propertyListNotEmpty )? ;
	public final void propertyList() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:234:5: ( (
			// propertyListNotEmpty )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:234:7: (
			// propertyListNotEmpty )?
			{
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:234:7: (
				// propertyListNotEmpty )?
				int alt44 = 2;
				int LA44_0 = input.LA(1);

				if ((LA44_0 == IRI_REF || LA44_0 == PNAME_NS || LA44_0 == A
						|| (LA44_0 >= VAR1 && LA44_0 <= VAR3) || LA44_0 == PNAME_LN)) {
					alt44 = 1;
				}
				switch (alt44) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:234:7:
					// propertyListNotEmpty
				{
					pushFollow(FOLLOW_propertyListNotEmpty_in_propertyList923);
					propertyListNotEmpty();
					_fsp--;

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end propertyList

	// $ANTLR start objectList
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:237:1:
	// objectList : object ( COMMA object )* ;
	public final void objectList() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:238:5: ( object (
			// COMMA object )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:238:7: object (
			// COMMA object )*
			{
				pushFollow(FOLLOW_object_in_objectList941);
				object();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:238:14: ( COMMA
				// object )*
				loop45: do {
					int alt45 = 2;
					int LA45_0 = input.LA(1);

					if ((LA45_0 == COMMA)) {
						alt45 = 1;
					}

					switch (alt45) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:238:16:
						// COMMA object
					{
						match(input, COMMA, FOLLOW_COMMA_in_objectList945);
						pushFollow(FOLLOW_object_in_objectList947);
						object();
						_fsp--;

					}
						break;

					default:
						break loop45;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end objectList

	// $ANTLR start object
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:241:1:
	// object : graphNode ;
	public final void object() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:242:5: ( graphNode )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:242:7: graphNode
			{
				pushFollow(FOLLOW_graphNode_in_object967);
				graphNode();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end object

	// $ANTLR start verb
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:245:1:
	// verb : ( varOrIRIref | A );
	public final void verb() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:246:5: ( varOrIRIref
			// | A )
			int alt46 = 2;
			int LA46_0 = input.LA(1);

			if ((LA46_0 == IRI_REF || LA46_0 == PNAME_NS
					|| (LA46_0 >= VAR1 && LA46_0 <= VAR3) || LA46_0 == PNAME_LN)) {
				alt46 = 1;
			} else if ((LA46_0 == A)) {
				alt46 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"245:1: verb : ( varOrIRIref | A );", 46, 0, input);

				throw nvae;
			}
			switch (alt46) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:246:7:
				// varOrIRIref
			{
				pushFollow(FOLLOW_varOrIRIref_in_verb984);
				varOrIRIref();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:247:7: A
			{
				match(input, A, FOLLOW_A_in_verb992);

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end verb

	// $ANTLR start triplesNode
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:250:1:
	// triplesNode : ( collection | blankNodePropertyList );
	public final void triplesNode() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:251:5: ( collection
			// | blankNodePropertyList )
			int alt47 = 2;
			int LA47_0 = input.LA(1);

			if ((LA47_0 == OPEN_BRACE)) {
				alt47 = 1;
			} else if ((LA47_0 == OPEN_SQUARE_BRACE)) {
				alt47 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"250:1: triplesNode : ( collection | blankNodePropertyList );",
						47, 0, input);

				throw nvae;
			}
			switch (alt47) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:251:7:
				// collection
			{
				pushFollow(FOLLOW_collection_in_triplesNode1009);
				collection();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:252:7:
				// blankNodePropertyList
			{
				pushFollow(FOLLOW_blankNodePropertyList_in_triplesNode1017);
				blankNodePropertyList();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end triplesNode

	// $ANTLR start blankNodePropertyList
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:255:1:
	// blankNodePropertyList : OPEN_SQUARE_BRACE propertyListNotEmpty
	// CLOSE_SQUARE_BRACE ;
	public final void blankNodePropertyList() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:256:5: (
			// OPEN_SQUARE_BRACE propertyListNotEmpty CLOSE_SQUARE_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:256:7:
			// OPEN_SQUARE_BRACE propertyListNotEmpty CLOSE_SQUARE_BRACE
			{
				match(input, OPEN_SQUARE_BRACE,
						FOLLOW_OPEN_SQUARE_BRACE_in_blankNodePropertyList1034);
				pushFollow(FOLLOW_propertyListNotEmpty_in_blankNodePropertyList1036);
				propertyListNotEmpty();
				_fsp--;

				match(input, CLOSE_SQUARE_BRACE,
						FOLLOW_CLOSE_SQUARE_BRACE_in_blankNodePropertyList1038);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end blankNodePropertyList

	// $ANTLR start collection
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:259:1:
	// collection : OPEN_BRACE ( graphNode )+ CLOSE_BRACE ;
	public final void collection() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:260:5: ( OPEN_BRACE
			// ( graphNode )+ CLOSE_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:260:7: OPEN_BRACE (
			// graphNode )+ CLOSE_BRACE
			{
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_collection1055);
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:260:18: (
				// graphNode )+
				int cnt48 = 0;
				loop48: do {
					int alt48 = 2;
					int LA48_0 = input.LA(1);

					if ((LA48_0 == IRI_REF || LA48_0 == PNAME_NS
							|| LA48_0 == INTEGER || LA48_0 == OPEN_BRACE
							|| LA48_0 == OPEN_SQUARE_BRACE
							|| (LA48_0 >= VAR1 && LA48_0 <= VAR3) || (LA48_0 >= DECIMAL && LA48_0 <= BLANK_NODE_LABEL))) {
						alt48 = 1;
					}

					switch (alt48) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:260:18:
						// graphNode
					{
						pushFollow(FOLLOW_graphNode_in_collection1057);
						graphNode();
						_fsp--;

					}
						break;

					default:
						if (cnt48 >= 1)
							break loop48;
						EarlyExitException eee = new EarlyExitException(48,
								input);
						throw eee;
					}
					cnt48++;
				} while (true);

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_collection1060);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end collection

	// $ANTLR start graphNode
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:263:1:
	// graphNode : ( varOrTerm | triplesNode );
	public final void graphNode() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:264:5: ( varOrTerm |
			// triplesNode )
			int alt49 = 2;
			switch (input.LA(1)) {
			case IRI_REF:
			case PNAME_NS:
			case INTEGER:
			case VAR1:
			case VAR2:
			case VAR3:
			case DECIMAL:
			case DOUBLE:
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE:
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE:
			case TRUE:
			case FALSE:
			case STRING_LITERAL1:
			case STRING_LITERAL2:
			case STRING_LITERAL_LONG1:
			case STRING_LITERAL_LONG2:
			case PNAME_LN:
			case BLANK_NODE_LABEL: {
				alt49 = 1;
			}
				break;
			case OPEN_SQUARE_BRACE: {
				int LA49_2 = input.LA(2);

				if ((LA49_2 == CLOSE_SQUARE_BRACE)) {
					alt49 = 1;
				} else if ((LA49_2 == IRI_REF || LA49_2 == PNAME_NS
						|| LA49_2 == A || (LA49_2 >= VAR1 && LA49_2 <= VAR3) || LA49_2 == PNAME_LN)) {
					alt49 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"263:1: graphNode : ( varOrTerm | triplesNode );",
							49, 2, input);

					throw nvae;
				}
			}
				break;
			case OPEN_BRACE: {
				int LA49_3 = input.LA(2);

				if ((LA49_3 == CLOSE_BRACE)) {
					alt49 = 1;
				} else if ((LA49_3 == IRI_REF || LA49_3 == PNAME_NS
						|| LA49_3 == INTEGER || LA49_3 == OPEN_BRACE
						|| LA49_3 == OPEN_SQUARE_BRACE
						|| (LA49_3 >= VAR1 && LA49_3 <= VAR3) || (LA49_3 >= DECIMAL && LA49_3 <= BLANK_NODE_LABEL))) {
					alt49 = 2;
				} else {
					NoViableAltException nvae = new NoViableAltException(
							"263:1: graphNode : ( varOrTerm | triplesNode );",
							49, 3, input);

					throw nvae;
				}
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"263:1: graphNode : ( varOrTerm | triplesNode );", 49,
						0, input);

				throw nvae;
			}

			switch (alt49) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:264:7: varOrTerm
			{
				pushFollow(FOLLOW_varOrTerm_in_graphNode1077);
				varOrTerm();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:264:19:
				// triplesNode
			{
				pushFollow(FOLLOW_triplesNode_in_graphNode1081);
				triplesNode();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end graphNode

	// $ANTLR start varOrTerm
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:267:1:
	// varOrTerm : ( var | graphTerm );
	public final void varOrTerm() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:268:5: ( var |
			// graphTerm )
			int alt50 = 2;
			int LA50_0 = input.LA(1);

			if (((LA50_0 >= VAR1 && LA50_0 <= VAR3))) {
				alt50 = 1;
			} else if ((LA50_0 == IRI_REF || LA50_0 == PNAME_NS
					|| LA50_0 == INTEGER || LA50_0 == OPEN_BRACE
					|| LA50_0 == OPEN_SQUARE_BRACE || (LA50_0 >= DECIMAL && LA50_0 <= BLANK_NODE_LABEL))) {
				alt50 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"267:1: varOrTerm : ( var | graphTerm );", 50, 0, input);

				throw nvae;
			}
			switch (alt50) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:268:7: var
			{
				pushFollow(FOLLOW_var_in_varOrTerm1098);
				var();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:269:7: graphTerm
			{
				pushFollow(FOLLOW_graphTerm_in_varOrTerm1106);
				graphTerm();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end varOrTerm

	// $ANTLR start varOrIRIref
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:272:1:
	// varOrIRIref : ( var | iriRef );
	public final void varOrIRIref() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:273:5: ( var |
			// iriRef )
			int alt51 = 2;
			int LA51_0 = input.LA(1);

			if (((LA51_0 >= VAR1 && LA51_0 <= VAR3))) {
				alt51 = 1;
			} else if ((LA51_0 == IRI_REF || LA51_0 == PNAME_NS || LA51_0 == PNAME_LN)) {
				alt51 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"272:1: varOrIRIref : ( var | iriRef );", 51, 0, input);

				throw nvae;
			}
			switch (alt51) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:273:7: var
			{
				pushFollow(FOLLOW_var_in_varOrIRIref1123);
				var();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:273:13: iriRef
			{
				pushFollow(FOLLOW_iriRef_in_varOrIRIref1127);
				iriRef();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end varOrIRIref

	// $ANTLR start var
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:276:1: var
	// : ( VAR1 | VAR2 | VAR3 );
	public final void var() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:277:5: ( VAR1 | VAR2
			// | VAR3 )
			int alt52 = 3;
			switch (input.LA(1)) {
			case VAR1: {
				alt52 = 1;
			}
				break;
			case VAR2: {
				alt52 = 2;
			}
				break;
			case VAR3: {
				alt52 = 3;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"276:1: var : ( VAR1 | VAR2 | VAR3 );", 52, 0, input);

				throw nvae;
			}

			switch (alt52) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:277:7: VAR1
			{
				match(input, VAR1, FOLLOW_VAR1_in_var1144);

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:278:7: VAR2
			{
				match(input, VAR2, FOLLOW_VAR2_in_var1152);

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:279:7: VAR3
			{
				match(input, VAR3, FOLLOW_VAR3_in_var1160);
				addVariable(input.get(input.index() - 1).getText());

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end var

	// $ANTLR start graphTerm
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:282:1:
	// graphTerm : ( iriRef | rdfLiteral | numericLiteral | booleanLiteral |
	// blankNode | OPEN_BRACE CLOSE_BRACE );
	public final void graphTerm() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:283:5: ( iriRef |
			// rdfLiteral | numericLiteral | booleanLiteral | blankNode |
			// OPEN_BRACE CLOSE_BRACE )
			int alt53 = 6;
			switch (input.LA(1)) {
			case IRI_REF:
			case PNAME_NS:
			case PNAME_LN: {
				alt53 = 1;
			}
				break;
			case STRING_LITERAL1:
			case STRING_LITERAL2:
			case STRING_LITERAL_LONG1:
			case STRING_LITERAL_LONG2: {
				alt53 = 2;
			}
				break;
			case INTEGER:
			case DECIMAL:
			case DOUBLE:
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE:
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE: {
				alt53 = 3;
			}
				break;
			case TRUE:
			case FALSE: {
				alt53 = 4;
			}
				break;
			case OPEN_SQUARE_BRACE:
			case BLANK_NODE_LABEL: {
				alt53 = 5;
			}
				break;
			case OPEN_BRACE: {
				alt53 = 6;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"282:1: graphTerm : ( iriRef | rdfLiteral | numericLiteral | booleanLiteral | blankNode | OPEN_BRACE CLOSE_BRACE );",
						53, 0, input);

				throw nvae;
			}

			switch (alt53) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:283:7: iriRef
			{
				pushFollow(FOLLOW_iriRef_in_graphTerm1179);
				iriRef();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:284:7:
				// rdfLiteral
			{
				pushFollow(FOLLOW_rdfLiteral_in_graphTerm1187);
				rdfLiteral();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:285:7:
				// numericLiteral
			{
				pushFollow(FOLLOW_numericLiteral_in_graphTerm1195);
				numericLiteral();
				_fsp--;

			}
				break;
			case 4:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:286:7:
				// booleanLiteral
			{
				pushFollow(FOLLOW_booleanLiteral_in_graphTerm1203);
				booleanLiteral();
				_fsp--;

			}
				break;
			case 5:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:287:7: blankNode
			{
				pushFollow(FOLLOW_blankNode_in_graphTerm1211);
				blankNode();
				_fsp--;

			}
				break;
			case 6:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:288:7:
				// OPEN_BRACE CLOSE_BRACE
			{
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_graphTerm1219);
				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_graphTerm1221);

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end graphTerm

	// $ANTLR start expression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:291:1:
	// expression : conditionalOrExpression ;
	public final void expression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:292:5: (
			// conditionalOrExpression )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:292:7:
			// conditionalOrExpression
			{
				pushFollow(FOLLOW_conditionalOrExpression_in_expression1238);
				conditionalOrExpression();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end expression

	// $ANTLR start conditionalOrExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:295:1:
	// conditionalOrExpression : conditionalAndExpression ( OR
	// conditionalAndExpression )* ;
	public final void conditionalOrExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:296:5: (
			// conditionalAndExpression ( OR conditionalAndExpression )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:296:7:
			// conditionalAndExpression ( OR conditionalAndExpression )*
			{
				pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression1255);
				conditionalAndExpression();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:296:32: ( OR
				// conditionalAndExpression )*
				loop54: do {
					int alt54 = 2;
					int LA54_0 = input.LA(1);

					if ((LA54_0 == OR)) {
						alt54 = 1;
					}

					switch (alt54) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:296:34:
						// OR conditionalAndExpression
					{
						match(input, OR,
								FOLLOW_OR_in_conditionalOrExpression1259);
						pushFollow(FOLLOW_conditionalAndExpression_in_conditionalOrExpression1261);
						conditionalAndExpression();
						_fsp--;

					}
						break;

					default:
						break loop54;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end conditionalOrExpression

	// $ANTLR start conditionalAndExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:299:1:
	// conditionalAndExpression : valueLogical ( AND valueLogical )* ;
	public final void conditionalAndExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:300:5: (
			// valueLogical ( AND valueLogical )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:300:7: valueLogical
			// ( AND valueLogical )*
			{
				pushFollow(FOLLOW_valueLogical_in_conditionalAndExpression1281);
				valueLogical();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:300:20: ( AND
				// valueLogical )*
				loop55: do {
					int alt55 = 2;
					int LA55_0 = input.LA(1);

					if ((LA55_0 == AND)) {
						alt55 = 1;
					}

					switch (alt55) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:300:22:
						// AND valueLogical
					{
						match(input, AND,
								FOLLOW_AND_in_conditionalAndExpression1285);
						pushFollow(FOLLOW_valueLogical_in_conditionalAndExpression1287);
						valueLogical();
						_fsp--;

					}
						break;

					default:
						break loop55;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end conditionalAndExpression

	// $ANTLR start valueLogical
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:303:1:
	// valueLogical : relationalExpression ;
	public final void valueLogical() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:304:5: (
			// relationalExpression )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:304:7:
			// relationalExpression
			{
				pushFollow(FOLLOW_relationalExpression_in_valueLogical1307);
				relationalExpression();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end valueLogical

	// $ANTLR start relationalExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:307:1:
	// relationalExpression : numericExpression ( EQUAL numericExpression |
	// NOT_EQUAL numericExpression | LESS numericExpression | GREATER
	// numericExpression | LESS_EQUAL numericExpression | GREATER_EQUAL
	// numericExpression )? ;
	public final void relationalExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:5: (
			// numericExpression ( EQUAL numericExpression | NOT_EQUAL
			// numericExpression | LESS numericExpression | GREATER
			// numericExpression | LESS_EQUAL numericExpression | GREATER_EQUAL
			// numericExpression )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:7:
			// numericExpression ( EQUAL numericExpression | NOT_EQUAL
			// numericExpression | LESS numericExpression | GREATER
			// numericExpression | LESS_EQUAL numericExpression | GREATER_EQUAL
			// numericExpression )?
			{
				pushFollow(FOLLOW_numericExpression_in_relationalExpression1324);
				numericExpression();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:25: ( EQUAL
				// numericExpression | NOT_EQUAL numericExpression | LESS
				// numericExpression | GREATER numericExpression | LESS_EQUAL
				// numericExpression | GREATER_EQUAL numericExpression )?
				int alt56 = 7;
				switch (input.LA(1)) {
				case EQUAL: {
					alt56 = 1;
				}
					break;
				case NOT_EQUAL: {
					alt56 = 2;
				}
					break;
				case LESS: {
					alt56 = 3;
				}
					break;
				case GREATER: {
					alt56 = 4;
				}
					break;
				case LESS_EQUAL: {
					alt56 = 5;
				}
					break;
				case GREATER_EQUAL: {
					alt56 = 6;
				}
					break;
				}

				switch (alt56) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:27:
					// EQUAL numericExpression
				{
					match(input, EQUAL,
							FOLLOW_EQUAL_in_relationalExpression1328);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1330);
					numericExpression();
					_fsp--;

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:53:
					// NOT_EQUAL numericExpression
				{
					match(input, NOT_EQUAL,
							FOLLOW_NOT_EQUAL_in_relationalExpression1334);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1336);
					numericExpression();
					_fsp--;

				}
					break;
				case 3:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:83: LESS
					// numericExpression
				{
					match(input, LESS, FOLLOW_LESS_in_relationalExpression1340);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1342);
					numericExpression();
					_fsp--;

				}
					break;
				case 4:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:108:
					// GREATER numericExpression
				{
					match(input, GREATER,
							FOLLOW_GREATER_in_relationalExpression1346);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1348);
					numericExpression();
					_fsp--;

				}
					break;
				case 5:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:136:
					// LESS_EQUAL numericExpression
				{
					match(input, LESS_EQUAL,
							FOLLOW_LESS_EQUAL_in_relationalExpression1352);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1354);
					numericExpression();
					_fsp--;

				}
					break;
				case 6:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:308:167:
					// GREATER_EQUAL numericExpression
				{
					match(input, GREATER_EQUAL,
							FOLLOW_GREATER_EQUAL_in_relationalExpression1358);
					pushFollow(FOLLOW_numericExpression_in_relationalExpression1360);
					numericExpression();
					_fsp--;

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end relationalExpression

	// $ANTLR start numericExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:311:1:
	// numericExpression : additiveExpression ;
	public final void numericExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:312:5: (
			// additiveExpression )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:312:7:
			// additiveExpression
			{
				pushFollow(FOLLOW_additiveExpression_in_numericExpression1380);
				additiveExpression();
				_fsp--;

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end numericExpression

	// $ANTLR start additiveExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:315:1:
	// additiveExpression : multiplicativeExpression ( PLUS
	// multiplicativeExpression | MINUS multiplicativeExpression |
	// numericLiteralPositive | numericLiteralNegative )* ;
	public final void additiveExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:5: (
			// multiplicativeExpression ( PLUS multiplicativeExpression | MINUS
			// multiplicativeExpression | numericLiteralPositive |
			// numericLiteralNegative )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:7:
			// multiplicativeExpression ( PLUS multiplicativeExpression | MINUS
			// multiplicativeExpression | numericLiteralPositive |
			// numericLiteralNegative )*
			{
				pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1397);
				multiplicativeExpression();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:32: ( PLUS
				// multiplicativeExpression | MINUS multiplicativeExpression |
				// numericLiteralPositive | numericLiteralNegative )*
				loop57: do {
					int alt57 = 5;
					switch (input.LA(1)) {
					case PLUS: {
						alt57 = 1;
					}
						break;
					case MINUS: {
						alt57 = 2;
					}
						break;
					case INTEGER_POSITIVE:
					case DECIMAL_POSITIVE:
					case DOUBLE_POSITIVE: {
						alt57 = 3;
					}
						break;
					case INTEGER_NEGATIVE:
					case DECIMAL_NEGATIVE:
					case DOUBLE_NEGATIVE: {
						alt57 = 4;
					}
						break;

					}

					switch (alt57) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:34:
						// PLUS multiplicativeExpression
					{
						match(input, PLUS,
								FOLLOW_PLUS_in_additiveExpression1401);
						pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1403);
						multiplicativeExpression();
						_fsp--;

					}
						break;
					case 2:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:66:
						// MINUS multiplicativeExpression
					{
						match(input, MINUS,
								FOLLOW_MINUS_in_additiveExpression1407);
						pushFollow(FOLLOW_multiplicativeExpression_in_additiveExpression1409);
						multiplicativeExpression();
						_fsp--;

					}
						break;
					case 3:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:99:
						// numericLiteralPositive
					{
						pushFollow(FOLLOW_numericLiteralPositive_in_additiveExpression1413);
						numericLiteralPositive();
						_fsp--;

					}
						break;
					case 4:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:316:124:
						// numericLiteralNegative
					{
						pushFollow(FOLLOW_numericLiteralNegative_in_additiveExpression1417);
						numericLiteralNegative();
						_fsp--;

					}
						break;

					default:
						break loop57;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end additiveExpression

	// $ANTLR start multiplicativeExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:319:1:
	// multiplicativeExpression : unaryExpression ( ASTERISK unaryExpression |
	// DIVIDE unaryExpression )* ;
	public final void multiplicativeExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:320:5: (
			// unaryExpression ( ASTERISK unaryExpression | DIVIDE
			// unaryExpression )* )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:320:7:
			// unaryExpression ( ASTERISK unaryExpression | DIVIDE
			// unaryExpression )*
			{
				pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1437);
				unaryExpression();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:320:23: (
				// ASTERISK unaryExpression | DIVIDE unaryExpression )*
				loop58: do {
					int alt58 = 3;
					int LA58_0 = input.LA(1);

					if ((LA58_0 == ASTERISK)) {
						alt58 = 1;
					} else if ((LA58_0 == DIVIDE)) {
						alt58 = 2;
					}

					switch (alt58) {
					case 1:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:320:25:
						// ASTERISK unaryExpression
					{
						match(input, ASTERISK,
								FOLLOW_ASTERISK_in_multiplicativeExpression1441);
						pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1443);
						unaryExpression();
						_fsp--;

					}
						break;
					case 2:
						// C:\\Dokumente und
						// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:320:52:
						// DIVIDE unaryExpression
					{
						match(input, DIVIDE,
								FOLLOW_DIVIDE_in_multiplicativeExpression1447);
						pushFollow(FOLLOW_unaryExpression_in_multiplicativeExpression1449);
						unaryExpression();
						_fsp--;

					}
						break;

					default:
						break loop58;
					}
				} while (true);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end multiplicativeExpression

	// $ANTLR start unaryExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:323:1:
	// unaryExpression : ( NOT primaryExpression | PLUS primaryExpression |
	// MINUS primaryExpression | primaryExpression );
	public final void unaryExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:324:5: ( NOT
			// primaryExpression | PLUS primaryExpression | MINUS
			// primaryExpression | primaryExpression )
			int alt59 = 4;
			switch (input.LA(1)) {
			case NOT: {
				alt59 = 1;
			}
				break;
			case PLUS: {
				alt59 = 2;
			}
				break;
			case MINUS: {
				alt59 = 3;
			}
				break;
			case IRI_REF:
			case PNAME_NS:
			case INTEGER:
			case OPEN_BRACE:
			case VAR1:
			case VAR2:
			case VAR3:
			case STR:
			case LANG:
			case LANGMATCHES:
			case DATATYPE:
			case BOUND:
			case SAMETERM:
			case ISIRI:
			case ISURI:
			case ISBLANK:
			case ISLITERAL:
			case REGEX:
			case DECIMAL:
			case DOUBLE:
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE:
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE:
			case TRUE:
			case FALSE:
			case STRING_LITERAL1:
			case STRING_LITERAL2:
			case STRING_LITERAL_LONG1:
			case STRING_LITERAL_LONG2:
			case PNAME_LN: {
				alt59 = 4;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"323:1: unaryExpression : ( NOT primaryExpression | PLUS primaryExpression | MINUS primaryExpression | primaryExpression );",
						59, 0, input);

				throw nvae;
			}

			switch (alt59) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:324:7: NOT
				// primaryExpression
			{
				match(input, NOT, FOLLOW_NOT_in_unaryExpression1469);
				pushFollow(FOLLOW_primaryExpression_in_unaryExpression1471);
				primaryExpression();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:325:7: PLUS
				// primaryExpression
			{
				match(input, PLUS, FOLLOW_PLUS_in_unaryExpression1479);
				pushFollow(FOLLOW_primaryExpression_in_unaryExpression1481);
				primaryExpression();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:326:7: MINUS
				// primaryExpression
			{
				match(input, MINUS, FOLLOW_MINUS_in_unaryExpression1489);
				pushFollow(FOLLOW_primaryExpression_in_unaryExpression1491);
				primaryExpression();
				_fsp--;

			}
				break;
			case 4:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:327:7:
				// primaryExpression
			{
				pushFollow(FOLLOW_primaryExpression_in_unaryExpression1499);
				primaryExpression();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end unaryExpression

	// $ANTLR start primaryExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:330:1:
	// primaryExpression : ( brackettedExpression | builtInCall |
	// iriRefOrFunction | rdfLiteral | numericLiteral | booleanLiteral | var );
	public final void primaryExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:5: (
			// brackettedExpression | builtInCall | iriRefOrFunction |
			// rdfLiteral | numericLiteral | booleanLiteral | var )
			int alt60 = 7;
			switch (input.LA(1)) {
			case OPEN_BRACE: {
				alt60 = 1;
			}
				break;
			case STR:
			case LANG:
			case LANGMATCHES:
			case DATATYPE:
			case BOUND:
			case SAMETERM:
			case ISIRI:
			case ISURI:
			case ISBLANK:
			case ISLITERAL:
			case REGEX: {
				alt60 = 2;
			}
				break;
			case IRI_REF:
			case PNAME_NS:
			case PNAME_LN: {
				alt60 = 3;
			}
				break;
			case STRING_LITERAL1:
			case STRING_LITERAL2:
			case STRING_LITERAL_LONG1:
			case STRING_LITERAL_LONG2: {
				alt60 = 4;
			}
				break;
			case INTEGER:
			case DECIMAL:
			case DOUBLE:
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE:
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE: {
				alt60 = 5;
			}
				break;
			case TRUE:
			case FALSE: {
				alt60 = 6;
			}
				break;
			case VAR1:
			case VAR2:
			case VAR3: {
				alt60 = 7;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"330:1: primaryExpression : ( brackettedExpression | builtInCall | iriRefOrFunction | rdfLiteral | numericLiteral | booleanLiteral | var );",
						60, 0, input);

				throw nvae;
			}

			switch (alt60) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:7:
				// brackettedExpression
			{
				pushFollow(FOLLOW_brackettedExpression_in_primaryExpression1516);
				brackettedExpression();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:30:
				// builtInCall
			{
				pushFollow(FOLLOW_builtInCall_in_primaryExpression1520);
				builtInCall();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:44:
				// iriRefOrFunction
			{
				pushFollow(FOLLOW_iriRefOrFunction_in_primaryExpression1524);
				iriRefOrFunction();
				_fsp--;

			}
				break;
			case 4:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:63:
				// rdfLiteral
			{
				pushFollow(FOLLOW_rdfLiteral_in_primaryExpression1528);
				rdfLiteral();
				_fsp--;

			}
				break;
			case 5:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:76:
				// numericLiteral
			{
				pushFollow(FOLLOW_numericLiteral_in_primaryExpression1532);
				numericLiteral();
				_fsp--;

			}
				break;
			case 6:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:93:
				// booleanLiteral
			{
				pushFollow(FOLLOW_booleanLiteral_in_primaryExpression1536);
				booleanLiteral();
				_fsp--;

			}
				break;
			case 7:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:331:110: var
			{
				pushFollow(FOLLOW_var_in_primaryExpression1540);
				var();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end primaryExpression

	// $ANTLR start brackettedExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:334:1:
	// brackettedExpression : OPEN_BRACE expression CLOSE_BRACE ;
	public final void brackettedExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:335:5: ( OPEN_BRACE
			// expression CLOSE_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:335:7: OPEN_BRACE
			// expression CLOSE_BRACE
			{
				match(input, OPEN_BRACE,
						FOLLOW_OPEN_BRACE_in_brackettedExpression1557);
				pushFollow(FOLLOW_expression_in_brackettedExpression1559);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE,
						FOLLOW_CLOSE_BRACE_in_brackettedExpression1561);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end brackettedExpression

	// $ANTLR start builtInCall
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:338:1:
	// builtInCall : ( STR OPEN_BRACE expression CLOSE_BRACE | LANG OPEN_BRACE
	// expression CLOSE_BRACE | LANGMATCHES OPEN_BRACE expression COMMA
	// expression CLOSE_BRACE | DATATYPE OPEN_BRACE expression CLOSE_BRACE |
	// BOUND OPEN_BRACE var CLOSE_BRACE | SAMETERM OPEN_BRACE expression COMMA
	// expression CLOSE_BRACE | ISIRI OPEN_BRACE expression CLOSE_BRACE | ISURI
	// OPEN_BRACE expression CLOSE_BRACE | ISBLANK OPEN_BRACE expression
	// CLOSE_BRACE | ISLITERAL OPEN_BRACE expression CLOSE_BRACE |
	// regexExpression );
	public final void builtInCall() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:339:5: ( STR
			// OPEN_BRACE expression CLOSE_BRACE | LANG OPEN_BRACE expression
			// CLOSE_BRACE | LANGMATCHES OPEN_BRACE expression COMMA expression
			// CLOSE_BRACE | DATATYPE OPEN_BRACE expression CLOSE_BRACE | BOUND
			// OPEN_BRACE var CLOSE_BRACE | SAMETERM OPEN_BRACE expression COMMA
			// expression CLOSE_BRACE | ISIRI OPEN_BRACE expression CLOSE_BRACE
			// | ISURI OPEN_BRACE expression CLOSE_BRACE | ISBLANK OPEN_BRACE
			// expression CLOSE_BRACE | ISLITERAL OPEN_BRACE expression
			// CLOSE_BRACE | regexExpression )
			int alt61 = 11;
			switch (input.LA(1)) {
			case STR: {
				alt61 = 1;
			}
				break;
			case LANG: {
				alt61 = 2;
			}
				break;
			case LANGMATCHES: {
				alt61 = 3;
			}
				break;
			case DATATYPE: {
				alt61 = 4;
			}
				break;
			case BOUND: {
				alt61 = 5;
			}
				break;
			case SAMETERM: {
				alt61 = 6;
			}
				break;
			case ISIRI: {
				alt61 = 7;
			}
				break;
			case ISURI: {
				alt61 = 8;
			}
				break;
			case ISBLANK: {
				alt61 = 9;
			}
				break;
			case ISLITERAL: {
				alt61 = 10;
			}
				break;
			case REGEX: {
				alt61 = 11;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"338:1: builtInCall : ( STR OPEN_BRACE expression CLOSE_BRACE | LANG OPEN_BRACE expression CLOSE_BRACE | LANGMATCHES OPEN_BRACE expression COMMA expression CLOSE_BRACE | DATATYPE OPEN_BRACE expression CLOSE_BRACE | BOUND OPEN_BRACE var CLOSE_BRACE | SAMETERM OPEN_BRACE expression COMMA expression CLOSE_BRACE | ISIRI OPEN_BRACE expression CLOSE_BRACE | ISURI OPEN_BRACE expression CLOSE_BRACE | ISBLANK OPEN_BRACE expression CLOSE_BRACE | ISLITERAL OPEN_BRACE expression CLOSE_BRACE | regexExpression );",
						61, 0, input);

				throw nvae;
			}

			switch (alt61) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:339:7: STR
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, STR, FOLLOW_STR_in_builtInCall1578);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1580);
				pushFollow(FOLLOW_expression_in_builtInCall1582);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1584);

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:340:7: LANG
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, LANG, FOLLOW_LANG_in_builtInCall1592);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1594);
				pushFollow(FOLLOW_expression_in_builtInCall1596);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1598);

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:341:7:
				// LANGMATCHES OPEN_BRACE expression COMMA expression
				// CLOSE_BRACE
			{
				match(input, LANGMATCHES, FOLLOW_LANGMATCHES_in_builtInCall1606);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1608);
				pushFollow(FOLLOW_expression_in_builtInCall1610);
				expression();
				_fsp--;

				match(input, COMMA, FOLLOW_COMMA_in_builtInCall1612);
				pushFollow(FOLLOW_expression_in_builtInCall1614);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1616);

			}
				break;
			case 4:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:342:7: DATATYPE
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, DATATYPE, FOLLOW_DATATYPE_in_builtInCall1624);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1626);
				pushFollow(FOLLOW_expression_in_builtInCall1628);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1630);

			}
				break;
			case 5:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:343:7: BOUND
				// OPEN_BRACE var CLOSE_BRACE
			{
				match(input, BOUND, FOLLOW_BOUND_in_builtInCall1638);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1640);
				pushFollow(FOLLOW_var_in_builtInCall1642);
				var();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1644);

			}
				break;
			case 6:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:344:7: SAMETERM
				// OPEN_BRACE expression COMMA expression CLOSE_BRACE
			{
				match(input, SAMETERM, FOLLOW_SAMETERM_in_builtInCall1652);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1654);
				pushFollow(FOLLOW_expression_in_builtInCall1656);
				expression();
				_fsp--;

				match(input, COMMA, FOLLOW_COMMA_in_builtInCall1658);
				pushFollow(FOLLOW_expression_in_builtInCall1660);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1662);

			}
				break;
			case 7:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:345:7: ISIRI
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, ISIRI, FOLLOW_ISIRI_in_builtInCall1670);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1672);
				pushFollow(FOLLOW_expression_in_builtInCall1674);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1676);

			}
				break;
			case 8:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:346:7: ISURI
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, ISURI, FOLLOW_ISURI_in_builtInCall1684);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1686);
				pushFollow(FOLLOW_expression_in_builtInCall1688);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1690);

			}
				break;
			case 9:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:347:7: ISBLANK
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, ISBLANK, FOLLOW_ISBLANK_in_builtInCall1698);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1700);
				pushFollow(FOLLOW_expression_in_builtInCall1702);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1704);

			}
				break;
			case 10:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:348:7: ISLITERAL
				// OPEN_BRACE expression CLOSE_BRACE
			{
				match(input, ISLITERAL, FOLLOW_ISLITERAL_in_builtInCall1712);
				match(input, OPEN_BRACE, FOLLOW_OPEN_BRACE_in_builtInCall1714);
				pushFollow(FOLLOW_expression_in_builtInCall1716);
				expression();
				_fsp--;

				match(input, CLOSE_BRACE, FOLLOW_CLOSE_BRACE_in_builtInCall1718);

			}
				break;
			case 11:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:349:7:
				// regexExpression
			{
				pushFollow(FOLLOW_regexExpression_in_builtInCall1726);
				regexExpression();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end builtInCall

	// $ANTLR start regexExpression
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:352:1:
	// regexExpression : REGEX OPEN_BRACE expression COMMA expression ( COMMA
	// expression )? CLOSE_BRACE ;
	public final void regexExpression() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:353:5: ( REGEX
			// OPEN_BRACE expression COMMA expression ( COMMA expression )?
			// CLOSE_BRACE )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:353:7: REGEX
			// OPEN_BRACE expression COMMA expression ( COMMA expression )?
			// CLOSE_BRACE
			{
				match(input, REGEX, FOLLOW_REGEX_in_regexExpression1743);
				match(input, OPEN_BRACE,
						FOLLOW_OPEN_BRACE_in_regexExpression1745);
				pushFollow(FOLLOW_expression_in_regexExpression1747);
				expression();
				_fsp--;

				match(input, COMMA, FOLLOW_COMMA_in_regexExpression1749);
				pushFollow(FOLLOW_expression_in_regexExpression1751);
				expression();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:353:52: ( COMMA
				// expression )?
				int alt62 = 2;
				int LA62_0 = input.LA(1);

				if ((LA62_0 == COMMA)) {
					alt62 = 1;
				}
				switch (alt62) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:353:54:
					// COMMA expression
				{
					match(input, COMMA, FOLLOW_COMMA_in_regexExpression1755);
					pushFollow(FOLLOW_expression_in_regexExpression1757);
					expression();
					_fsp--;

				}
					break;

				}

				match(input, CLOSE_BRACE,
						FOLLOW_CLOSE_BRACE_in_regexExpression1762);

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end regexExpression

	// $ANTLR start iriRefOrFunction
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:356:1:
	// iriRefOrFunction : iriRef ( argList )? ;
	public final void iriRefOrFunction() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:357:5: ( iriRef (
			// argList )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:357:7: iriRef (
			// argList )?
			{
				pushFollow(FOLLOW_iriRef_in_iriRefOrFunction1779);
				iriRef();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:357:14: (
				// argList )?
				int alt63 = 2;
				int LA63_0 = input.LA(1);

				if ((LA63_0 == OPEN_BRACE)) {
					alt63 = 1;
				}
				switch (alt63) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:357:14:
					// argList
				{
					pushFollow(FOLLOW_argList_in_iriRefOrFunction1781);
					argList();
					_fsp--;

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end iriRefOrFunction

	// $ANTLR start rdfLiteral
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:360:1:
	// rdfLiteral : string ( LANGTAG | ( REFERENCE iriRef ) )? ;
	public final void rdfLiteral() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:5: ( string (
			// LANGTAG | ( REFERENCE iriRef ) )? )
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:7: string (
			// LANGTAG | ( REFERENCE iriRef ) )?
			{
				pushFollow(FOLLOW_string_in_rdfLiteral1799);
				string();
				_fsp--;

				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:14: (
				// LANGTAG | ( REFERENCE iriRef ) )?
				int alt64 = 3;
				int LA64_0 = input.LA(1);

				if ((LA64_0 == LANGTAG)) {
					alt64 = 1;
				} else if ((LA64_0 == REFERENCE)) {
					alt64 = 2;
				}
				switch (alt64) {
				case 1:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:16:
					// LANGTAG
				{
					match(input, LANGTAG, FOLLOW_LANGTAG_in_rdfLiteral1803);

				}
					break;
				case 2:
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:26: (
					// REFERENCE iriRef )
				{
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:26: (
					// REFERENCE iriRef )
					// C:\\Dokumente und
					// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:361:28:
					// REFERENCE iriRef
					{
						match(input, REFERENCE,
								FOLLOW_REFERENCE_in_rdfLiteral1809);
						pushFollow(FOLLOW_iriRef_in_rdfLiteral1811);
						iriRef();
						_fsp--;

					}

				}
					break;

				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end rdfLiteral

	// $ANTLR start numericLiteral
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:364:1:
	// numericLiteral : ( numericLiteralUnsigned | numericLiteralPositive |
	// numericLiteralNegative );
	public final void numericLiteral() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:365:5: (
			// numericLiteralUnsigned | numericLiteralPositive |
			// numericLiteralNegative )
			int alt65 = 3;
			switch (input.LA(1)) {
			case INTEGER:
			case DECIMAL:
			case DOUBLE: {
				alt65 = 1;
			}
				break;
			case INTEGER_POSITIVE:
			case DECIMAL_POSITIVE:
			case DOUBLE_POSITIVE: {
				alt65 = 2;
			}
				break;
			case INTEGER_NEGATIVE:
			case DECIMAL_NEGATIVE:
			case DOUBLE_NEGATIVE: {
				alt65 = 3;
			}
				break;
			default:
				NoViableAltException nvae = new NoViableAltException(
						"364:1: numericLiteral : ( numericLiteralUnsigned | numericLiteralPositive | numericLiteralNegative );",
						65, 0, input);

				throw nvae;
			}

			switch (alt65) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:365:7:
				// numericLiteralUnsigned
			{
				pushFollow(FOLLOW_numericLiteralUnsigned_in_numericLiteral1833);
				numericLiteralUnsigned();
				_fsp--;

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:365:32:
				// numericLiteralPositive
			{
				pushFollow(FOLLOW_numericLiteralPositive_in_numericLiteral1837);
				numericLiteralPositive();
				_fsp--;

			}
				break;
			case 3:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:365:57:
				// numericLiteralNegative
			{
				pushFollow(FOLLOW_numericLiteralNegative_in_numericLiteral1841);
				numericLiteralNegative();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end numericLiteral

	// $ANTLR start numericLiteralUnsigned
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:368:1:
	// numericLiteralUnsigned : ( INTEGER | DECIMAL | DOUBLE );
	public final void numericLiteralUnsigned() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:369:5: ( INTEGER |
			// DECIMAL | DOUBLE )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if (input.LA(1) == INTEGER
						|| (input.LA(1) >= DECIMAL && input.LA(1) <= DOUBLE)) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse,
							FOLLOW_set_in_numericLiteralUnsigned0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end numericLiteralUnsigned

	// $ANTLR start numericLiteralPositive
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:374:1:
	// numericLiteralPositive : ( INTEGER_POSITIVE | DECIMAL_POSITIVE |
	// DOUBLE_POSITIVE );
	public final void numericLiteralPositive() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:375:5: (
			// INTEGER_POSITIVE | DECIMAL_POSITIVE | DOUBLE_POSITIVE )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if ((input.LA(1) >= INTEGER_POSITIVE && input.LA(1) <= DOUBLE_POSITIVE)) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse,
							FOLLOW_set_in_numericLiteralPositive0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end numericLiteralPositive

	// $ANTLR start numericLiteralNegative
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:380:1:
	// numericLiteralNegative : ( INTEGER_NEGATIVE | DECIMAL_NEGATIVE |
	// DOUBLE_NEGATIVE );
	public final void numericLiteralNegative() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:381:5: (
			// INTEGER_NEGATIVE | DECIMAL_NEGATIVE | DOUBLE_NEGATIVE )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if ((input.LA(1) >= INTEGER_NEGATIVE && input.LA(1) <= DOUBLE_NEGATIVE)) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse,
							FOLLOW_set_in_numericLiteralNegative0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end numericLiteralNegative

	// $ANTLR start booleanLiteral
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:386:1:
	// booleanLiteral : ( TRUE | FALSE );
	public final void booleanLiteral() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:387:5: ( TRUE |
			// FALSE )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if ((input.LA(1) >= TRUE && input.LA(1) <= FALSE)) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse,
							FOLLOW_set_in_booleanLiteral0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end booleanLiteral

	// $ANTLR start string
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:391:1:
	// string : ( STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 |
	// STRING_LITERAL_LONG2 );
	public final void string() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:392:5: (
			// STRING_LITERAL1 | STRING_LITERAL2 | STRING_LITERAL_LONG1 |
			// STRING_LITERAL_LONG2 )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if ((input.LA(1) >= STRING_LITERAL1 && input.LA(1) <= STRING_LITERAL_LONG2)) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse, FOLLOW_set_in_string0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end string

	// $ANTLR start iriRef
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:398:1:
	// iriRef : ( IRI_REF | prefixedName );
	public final void iriRef() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:399:5: ( IRI_REF |
			// prefixedName )
			int alt66 = 2;
			int LA66_0 = input.LA(1);

			if ((LA66_0 == IRI_REF)) {
				alt66 = 1;
			} else if ((LA66_0 == PNAME_NS || LA66_0 == PNAME_LN)) {
				alt66 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"398:1: iriRef : ( IRI_REF | prefixedName );", 66, 0,
						input);

				throw nvae;
			}
			switch (alt66) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:399:7: IRI_REF
			{
				match(input, IRI_REF, FOLLOW_IRI_REF_in_iriRef2023);

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:400:7:
				// prefixedName
			{
				pushFollow(FOLLOW_prefixedName_in_iriRef2031);
				prefixedName();
				_fsp--;

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end iriRef

	// $ANTLR start prefixedName
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:403:1:
	// prefixedName : ( PNAME_LN | PNAME_NS );
	public final void prefixedName() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:404:5: ( PNAME_LN |
			// PNAME_NS )
			// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:
			{
				if (input.LA(1) == PNAME_NS || input.LA(1) == PNAME_LN) {
					input.consume();
					errorRecovery = false;
				} else {
					MismatchedSetException mse = new MismatchedSetException(
							null, input);
					recoverFromMismatchedSet(input, mse,
							FOLLOW_set_in_prefixedName0);
					throw mse;
				}

			}

		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end prefixedName

	// $ANTLR start blankNode
	// C:\\Dokumente und Einstellungen\\Soeren\\Desktop\\twi_sparql.g:408:1:
	// blankNode : ( BLANK_NODE_LABEL | OPEN_SQUARE_BRACE CLOSE_SQUARE_BRACE );
	public final void blankNode() throws RecognitionException {
		try {
			// C:\\Dokumente und
			// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:409:5: (
			// BLANK_NODE_LABEL | OPEN_SQUARE_BRACE CLOSE_SQUARE_BRACE )
			int alt67 = 2;
			int LA67_0 = input.LA(1);

			if ((LA67_0 == BLANK_NODE_LABEL)) {
				alt67 = 1;
			} else if ((LA67_0 == OPEN_SQUARE_BRACE)) {
				alt67 = 2;
			} else {
				NoViableAltException nvae = new NoViableAltException(
						"408:1: blankNode : ( BLANK_NODE_LABEL | OPEN_SQUARE_BRACE CLOSE_SQUARE_BRACE );",
						67, 0, input);

				throw nvae;
			}
			switch (alt67) {
			case 1:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:409:7:
				// BLANK_NODE_LABEL
			{
				match(input, BLANK_NODE_LABEL,
						FOLLOW_BLANK_NODE_LABEL_in_blankNode2073);

			}
				break;
			case 2:
				// C:\\Dokumente und
				// Einstellungen\\Soeren\\Desktop\\twi_sparql.g:410:7:
				// OPEN_SQUARE_BRACE CLOSE_SQUARE_BRACE
			{
				match(input, OPEN_SQUARE_BRACE,
						FOLLOW_OPEN_SQUARE_BRACE_in_blankNode2081);
				match(input, CLOSE_SQUARE_BRACE,
						FOLLOW_CLOSE_SQUARE_BRACE_in_blankNode2083);

			}
				break;

			}
		} catch (RecognitionException re) {
			reportError(re);
			recover(input, re);
		} finally {
		}
		return;
	}

	// $ANTLR end blankNode

	public static final BitSet FOLLOW_prologue_in_query27 = new BitSet(
			new long[] { 0x0000000000007100L });
	public static final BitSet FOLLOW_selectQuery_in_query31 = new BitSet(
			new long[] { 0x0000000000000000L });
	public static final BitSet FOLLOW_constructQuery_in_query35 = new BitSet(
			new long[] { 0x0000000000000000L });
	public static final BitSet FOLLOW_describeQuery_in_query39 = new BitSet(
			new long[] { 0x0000000000000000L });
	public static final BitSet FOLLOW_askQuery_in_query43 = new BitSet(
			new long[] { 0x0000000000000000L });
	public static final BitSet FOLLOW_EOF_in_query47 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_baseDecl_in_prologue64 = new BitSet(
			new long[] { 0x0000000000000042L });
	public static final BitSet FOLLOW_prefixDecl_in_prologue67 = new BitSet(
			new long[] { 0x0000000000000042L });
	public static final BitSet FOLLOW_BASE_in_baseDecl85 = new BitSet(
			new long[] { 0x0000000000000020L });
	public static final BitSet FOLLOW_IRI_REF_in_baseDecl87 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PREFIX_in_prefixDecl104 = new BitSet(
			new long[] { 0x0000000000000080L });
	public static final BitSet FOLLOW_PNAME_NS_in_prefixDecl106 = new BitSet(
			new long[] { 0x0000000000000020L });
	public static final BitSet FOLLOW_IRI_REF_in_prefixDecl108 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SELECT_in_selectQuery125 = new BitSet(
			new long[] { 0x0000038000000E00L });
	public static final BitSet FOLLOW_set_in_selectQuery127 = new BitSet(
			new long[] { 0x0000038000000800L });
	public static final BitSet FOLLOW_var_in_selectQuery140 = new BitSet(
			new long[] { 0x0000438002028000L });
	public static final BitSet FOLLOW_ASTERISK_in_selectQuery145 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_datasetClause_in_selectQuery149 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_whereClause_in_selectQuery152 = new BitSet(
			new long[] { 0x0000000001440002L });
	public static final BitSet FOLLOW_solutionModifier_in_selectQuery154 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_CONSTRUCT_in_constructQuery171 = new BitSet(
			new long[] { 0x0000000002000000L });
	public static final BitSet FOLLOW_constructTemplate_in_constructQuery173 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_datasetClause_in_constructQuery175 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_whereClause_in_constructQuery178 = new BitSet(
			new long[] { 0x0000000001440002L });
	public static final BitSet FOLLOW_solutionModifier_in_constructQuery180 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DESCRIBE_in_describeQuery197 = new BitSet(
			new long[] { 0x00000380000008A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_varOrIRIref_in_describeQuery201 = new BitSet(
			new long[] { 0x00004380034680A2L, 0x0000000000020000L });
	public static final BitSet FOLLOW_ASTERISK_in_describeQuery206 = new BitSet(
			new long[] { 0x0000400003468002L });
	public static final BitSet FOLLOW_datasetClause_in_describeQuery210 = new BitSet(
			new long[] { 0x0000400003468002L });
	public static final BitSet FOLLOW_whereClause_in_describeQuery213 = new BitSet(
			new long[] { 0x0000000001440002L });
	public static final BitSet FOLLOW_solutionModifier_in_describeQuery216 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ASK_in_askQuery233 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_datasetClause_in_askQuery235 = new BitSet(
			new long[] { 0x0000400002028000L });
	public static final BitSet FOLLOW_whereClause_in_askQuery238 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_FROM_in_datasetClause255 = new BitSet(
			new long[] { 0x00000000000100A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_defaultGraphClause_in_datasetClause259 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_namedGraphClause_in_datasetClause263 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_sourceSelector_in_defaultGraphClause282 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NAMED_in_namedGraphClause299 = new BitSet(
			new long[] { 0x00000000000000A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_sourceSelector_in_namedGraphClause301 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRef_in_sourceSelector318 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_WHERE_in_whereClause335 = new BitSet(
			new long[] { 0x0000400002000000L });
	public static final BitSet FOLLOW_groupGraphPattern_in_whereClause339 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LESS_in_whereClause343 = new BitSet(
			new long[] { 0x0000000002000000L });
	public static final BitSet FOLLOW_groupGraphPattern_in_whereClause345 = new BitSet(
			new long[] { 0x0000800000000000L });
	public static final BitSet FOLLOW_GREATER_in_whereClause347 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_orderClause_in_solutionModifier365 = new BitSet(
			new long[] { 0x0000000001400002L });
	public static final BitSet FOLLOW_limitOffsetClauses_in_solutionModifier368 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_limitClause_in_limitOffsetClauses388 = new BitSet(
			new long[] { 0x0000000001000002L });
	public static final BitSet FOLLOW_offsetClause_in_limitOffsetClauses390 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_offsetClause_in_limitOffsetClauses395 = new BitSet(
			new long[] { 0x0000000000400002L });
	public static final BitSet FOLLOW_limitClause_in_limitOffsetClauses397 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ORDER_in_orderClause417 = new BitSet(
			new long[] { 0x0000000000080000L });
	public static final BitSet FOLLOW_BY_in_orderClause419 = new BitSet(
			new long[] { 0xFFC00381003000A0L, 0x0000000000020001L });
	public static final BitSet FOLLOW_orderCondition_in_orderClause421 = new BitSet(
			new long[] { 0xFFC00381003000A2L, 0x0000000000020001L });
	public static final BitSet FOLLOW_set_in_orderCondition441 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_brackettedExpression_in_orderCondition451 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_constraint_in_orderCondition463 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_var_in_orderCondition467 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LIMIT_in_limitClause486 = new BitSet(
			new long[] { 0x0000000000800000L });
	public static final BitSet FOLLOW_INTEGER_in_limitClause488 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OFFSET_in_offsetClause505 = new BitSet(
			new long[] { 0x0000000000800000L });
	public static final BitSet FOLLOW_INTEGER_in_offsetClause507 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_CURLY_BRACE_in_groupGraphPattern524 = new BitSet(
			new long[] { 0x000043A1BA8000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_triplesBlock_in_groupGraphPattern526 = new BitSet(
			new long[] { 0x00000000BA000000L });
	public static final BitSet FOLLOW_graphPatternNotTriples_in_groupGraphPattern533 = new BitSet(
			new long[] { 0x000043A1BE8000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_filter_in_groupGraphPattern537 = new BitSet(
			new long[] { 0x000043A1BE8000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_DOT_in_groupGraphPattern541 = new BitSet(
			new long[] { 0x000043A1BA8000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_triplesBlock_in_groupGraphPattern544 = new BitSet(
			new long[] { 0x00000000BA000000L });
	public static final BitSet FOLLOW_CLOSE_CURLY_BRACE_in_groupGraphPattern550 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_triplesSameSubject_in_triplesBlock571 = new BitSet(
			new long[] { 0x0000000004000002L });
	public static final BitSet FOLLOW_listBlock_in_triplesBlock575 = new BitSet(
			new long[] { 0x0000000004000002L });
	public static final BitSet FOLLOW_DOT_in_triplesBlock581 = new BitSet(
			new long[] { 0x000043A1008000A2L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_triplesBlock_in_triplesBlock583 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LESS_in_listBlock600 = new BitSet(
			new long[] { 0x000043A1008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_triplesBlock_in_listBlock603 = new BitSet(
			new long[] { 0x0000800000000000L });
	public static final BitSet FOLLOW_GREATER_in_listBlock605 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_optionalGraphPattern_in_graphPatternNotTriples620 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_groupOrUnionGraphPattern_in_graphPatternNotTriples624 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_graphGraphPattern_in_graphPatternNotTriples628 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPTIONAL_in_optionalGraphPattern645 = new BitSet(
			new long[] { 0x0000000002000000L });
	public static final BitSet FOLLOW_groupGraphPattern_in_optionalGraphPattern647 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_GRAPH_in_graphGraphPattern664 = new BitSet(
			new long[] { 0x00000380000000A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_varOrIRIref_in_graphGraphPattern666 = new BitSet(
			new long[] { 0x0000000002000000L });
	public static final BitSet FOLLOW_groupGraphPattern_in_graphGraphPattern668 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_groupGraphPattern_in_groupOrUnionGraphPattern685 = new BitSet(
			new long[] { 0x0000000040000002L });
	public static final BitSet FOLLOW_UNION_in_groupOrUnionGraphPattern689 = new BitSet(
			new long[] { 0x0000000002000000L });
	public static final BitSet FOLLOW_groupGraphPattern_in_groupOrUnionGraphPattern691 = new BitSet(
			new long[] { 0x0000000040000002L });
	public static final BitSet FOLLOW_FILTER_in_filter711 = new BitSet(
			new long[] { 0xFFC00001000000A0L, 0x0000000000020001L });
	public static final BitSet FOLLOW_constraint_in_filter713 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_brackettedExpression_in_constraint730 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_builtInCall_in_constraint734 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_functionCall_in_constraint738 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRef_in_functionCall755 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_argList_in_functionCall757 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_argList776 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_argList778 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_argList782 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_argList784 = new BitSet(
			new long[] { 0x0000000600000000L });
	public static final BitSet FOLLOW_COMMA_in_argList788 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_argList790 = new BitSet(
			new long[] { 0x0000000600000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_argList795 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_CURLY_BRACE_in_constructTemplate814 = new BitSet(
			new long[] { 0x000003A1088000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_constructTriples_in_constructTemplate816 = new BitSet(
			new long[] { 0x0000000008000000L });
	public static final BitSet FOLLOW_CLOSE_CURLY_BRACE_in_constructTemplate819 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_triplesSameSubject_in_constructTriples836 = new BitSet(
			new long[] { 0x0000000004000002L });
	public static final BitSet FOLLOW_DOT_in_constructTriples840 = new BitSet(
			new long[] { 0x000003A1008000A2L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_constructTriples_in_constructTriples842 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_varOrTerm_in_triplesSameSubject863 = new BitSet(
			new long[] { 0x00000390000000A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_propertyListNotEmpty_in_triplesSameSubject865 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_triplesNode_in_triplesSameSubject869 = new BitSet(
			new long[] { 0x00000390000000A2L, 0x0000000000020000L });
	public static final BitSet FOLLOW_propertyList_in_triplesSameSubject871 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_verb_in_propertyListNotEmpty888 = new BitSet(
			new long[] { 0x000003A1008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_objectList_in_propertyListNotEmpty890 = new BitSet(
			new long[] { 0x0000000800000002L });
	public static final BitSet FOLLOW_SEMICOLON_in_propertyListNotEmpty894 = new BitSet(
			new long[] { 0x00000398000000A2L, 0x0000000000020000L });
	public static final BitSet FOLLOW_verb_in_propertyListNotEmpty898 = new BitSet(
			new long[] { 0x000003A1008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_objectList_in_propertyListNotEmpty900 = new BitSet(
			new long[] { 0x0000000800000002L });
	public static final BitSet FOLLOW_propertyListNotEmpty_in_propertyList923 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_object_in_objectList941 = new BitSet(
			new long[] { 0x0000000400000002L });
	public static final BitSet FOLLOW_COMMA_in_objectList945 = new BitSet(
			new long[] { 0x000003A1008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_object_in_objectList947 = new BitSet(
			new long[] { 0x0000000400000002L });
	public static final BitSet FOLLOW_graphNode_in_object967 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_varOrIRIref_in_verb984 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_A_in_verb992 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_collection_in_triplesNode1009 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_blankNodePropertyList_in_triplesNode1017 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_SQUARE_BRACE_in_blankNodePropertyList1034 = new BitSet(
			new long[] { 0x00000390000000A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_propertyListNotEmpty_in_blankNodePropertyList1036 = new BitSet(
			new long[] { 0x0000004000000000L });
	public static final BitSet FOLLOW_CLOSE_SQUARE_BRACE_in_blankNodePropertyList1038 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_collection1055 = new BitSet(
			new long[] { 0x000003A1008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_graphNode_in_collection1057 = new BitSet(
			new long[] { 0x000003A3008000A0L, 0x000000000007FFF8L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_collection1060 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_varOrTerm_in_graphNode1077 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_triplesNode_in_graphNode1081 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_var_in_varOrTerm1098 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_graphTerm_in_varOrTerm1106 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_var_in_varOrIRIref1123 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRef_in_varOrIRIref1127 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VAR1_in_var1144 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VAR2_in_var1152 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_VAR3_in_var1160 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRef_in_graphTerm1179 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_rdfLiteral_in_graphTerm1187 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericLiteral_in_graphTerm1195 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_booleanLiteral_in_graphTerm1203 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_blankNode_in_graphTerm1211 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_graphTerm1219 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_graphTerm1221 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_conditionalOrExpression_in_expression1238 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression1255 = new BitSet(
			new long[] { 0x0000040000000002L });
	public static final BitSet FOLLOW_OR_in_conditionalOrExpression1259 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_conditionalAndExpression_in_conditionalOrExpression1261 = new BitSet(
			new long[] { 0x0000040000000002L });
	public static final BitSet FOLLOW_valueLogical_in_conditionalAndExpression1281 = new BitSet(
			new long[] { 0x0000080000000002L });
	public static final BitSet FOLLOW_AND_in_conditionalAndExpression1285 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_valueLogical_in_conditionalAndExpression1287 = new BitSet(
			new long[] { 0x0000080000000002L });
	public static final BitSet FOLLOW_relationalExpression_in_valueLogical1307 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1324 = new BitSet(
			new long[] { 0x0003F00000000002L });
	public static final BitSet FOLLOW_EQUAL_in_relationalExpression1328 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1330 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_NOT_EQUAL_in_relationalExpression1334 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1336 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LESS_in_relationalExpression1340 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1342 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_GREATER_in_relationalExpression1346 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1348 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LESS_EQUAL_in_relationalExpression1352 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1354 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_GREATER_EQUAL_in_relationalExpression1358 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_numericExpression_in_relationalExpression1360 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_additiveExpression_in_numericExpression1380 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1397 = new BitSet(
			new long[] { 0x000C000000000002L, 0x00000000000007E0L });
	public static final BitSet FOLLOW_PLUS_in_additiveExpression1401 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1403 = new BitSet(
			new long[] { 0x000C000000000002L, 0x00000000000007E0L });
	public static final BitSet FOLLOW_MINUS_in_additiveExpression1407 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_multiplicativeExpression_in_additiveExpression1409 = new BitSet(
			new long[] { 0x000C000000000002L, 0x00000000000007E0L });
	public static final BitSet FOLLOW_numericLiteralPositive_in_additiveExpression1413 = new BitSet(
			new long[] { 0x000C000000000002L, 0x00000000000007E0L });
	public static final BitSet FOLLOW_numericLiteralNegative_in_additiveExpression1417 = new BitSet(
			new long[] { 0x000C000000000002L, 0x00000000000007E0L });
	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1437 = new BitSet(
			new long[] { 0x0010000000000802L });
	public static final BitSet FOLLOW_ASTERISK_in_multiplicativeExpression1441 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1443 = new BitSet(
			new long[] { 0x0010000000000802L });
	public static final BitSet FOLLOW_DIVIDE_in_multiplicativeExpression1447 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_unaryExpression_in_multiplicativeExpression1449 = new BitSet(
			new long[] { 0x0010000000000802L });
	public static final BitSet FOLLOW_NOT_in_unaryExpression1469 = new BitSet(
			new long[] { 0xFFC00381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_primaryExpression_in_unaryExpression1471 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_PLUS_in_unaryExpression1479 = new BitSet(
			new long[] { 0xFFC00381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_primaryExpression_in_unaryExpression1481 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_MINUS_in_unaryExpression1489 = new BitSet(
			new long[] { 0xFFC00381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_primaryExpression_in_unaryExpression1491 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_primaryExpression_in_unaryExpression1499 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_brackettedExpression_in_primaryExpression1516 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_builtInCall_in_primaryExpression1520 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRefOrFunction_in_primaryExpression1524 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_rdfLiteral_in_primaryExpression1528 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericLiteral_in_primaryExpression1532 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_booleanLiteral_in_primaryExpression1536 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_var_in_primaryExpression1540 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_brackettedExpression1557 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_brackettedExpression1559 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_brackettedExpression1561 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_STR_in_builtInCall1578 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1580 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1582 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1584 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LANG_in_builtInCall1592 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1594 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1596 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1598 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_LANGMATCHES_in_builtInCall1606 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1608 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1610 = new BitSet(
			new long[] { 0x0000000400000000L });
	public static final BitSet FOLLOW_COMMA_in_builtInCall1612 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1614 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1616 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_DATATYPE_in_builtInCall1624 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1626 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1628 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1630 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BOUND_in_builtInCall1638 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1640 = new BitSet(
			new long[] { 0x0000038000000000L });
	public static final BitSet FOLLOW_var_in_builtInCall1642 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1644 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_SAMETERM_in_builtInCall1652 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1654 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1656 = new BitSet(
			new long[] { 0x0000000400000000L });
	public static final BitSet FOLLOW_COMMA_in_builtInCall1658 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1660 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1662 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ISIRI_in_builtInCall1670 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1672 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1674 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1676 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ISURI_in_builtInCall1684 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1686 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1688 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1690 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ISBLANK_in_builtInCall1698 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1700 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1702 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1704 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_ISLITERAL_in_builtInCall1712 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_builtInCall1714 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_builtInCall1716 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_builtInCall1718 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_regexExpression_in_builtInCall1726 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REGEX_in_regexExpression1743 = new BitSet(
			new long[] { 0x0000000100000000L });
	public static final BitSet FOLLOW_OPEN_BRACE_in_regexExpression1745 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_regexExpression1747 = new BitSet(
			new long[] { 0x0000000400000000L });
	public static final BitSet FOLLOW_COMMA_in_regexExpression1749 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_regexExpression1751 = new BitSet(
			new long[] { 0x0000000600000000L });
	public static final BitSet FOLLOW_COMMA_in_regexExpression1755 = new BitSet(
			new long[] { 0xFFEC0381008000A0L, 0x000000000003FFF9L });
	public static final BitSet FOLLOW_expression_in_regexExpression1757 = new BitSet(
			new long[] { 0x0000000200000000L });
	public static final BitSet FOLLOW_CLOSE_BRACE_in_regexExpression1762 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_iriRef_in_iriRefOrFunction1779 = new BitSet(
			new long[] { 0x0000000100000002L });
	public static final BitSet FOLLOW_argList_in_iriRefOrFunction1781 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_string_in_rdfLiteral1799 = new BitSet(
			new long[] { 0x0000000000000002L, 0x0000000000000006L });
	public static final BitSet FOLLOW_LANGTAG_in_rdfLiteral1803 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_REFERENCE_in_rdfLiteral1809 = new BitSet(
			new long[] { 0x00000000000000A0L, 0x0000000000020000L });
	public static final BitSet FOLLOW_iriRef_in_rdfLiteral1811 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericLiteralUnsigned_in_numericLiteral1833 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericLiteralPositive_in_numericLiteral1837 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_numericLiteralNegative_in_numericLiteral1841 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_numericLiteralUnsigned0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_numericLiteralPositive0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_numericLiteralNegative0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_string0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_IRI_REF_in_iriRef2023 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_prefixedName_in_iriRef2031 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_set_in_prefixedName0 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_BLANK_NODE_LABEL_in_blankNode2073 = new BitSet(
			new long[] { 0x0000000000000002L });
	public static final BitSet FOLLOW_OPEN_SQUARE_BRACE_in_blankNode2081 = new BitSet(
			new long[] { 0x0000004000000000L });
	public static final BitSet FOLLOW_CLOSE_SQUARE_BRACE_in_blankNode2083 = new BitSet(
			new long[] { 0x0000000000000002L });

}